Вам нужно также передать размер массива функции. Когда вы передаете массив в свою функцию, вы действительно передаете адрес первого элемента в этом массиве. Таким образом, указатель указывает только на первый элемент в вашей функции.
Поскольку память в массиве непрерывна, вы все равно можете использовать арифметику указателя, такую как (b + 1)
, чтобы указать на второй элемент или эквивалентно b [1 ]
void print_array (int * b, int num_elements) {for (int i = 0; i & lt; num_elements; i ++) {printf ("% d", b [ я]); }}
Этот трюк работает только с массивами, а не с указателями:
sizeof (b) / sizeof (b [0])
... и не совпадают с указателями .
Попробуйте это, но я не думаю, что это сработает, потому что вы не должны изменять это
Поместите эту строку в файл htaccess в каталоге, в котором вы хотите, чтобы этот параметр enabled:
php_value allow_url_fopen On
Обратите внимание, что этот параметр применим только к файлам PHP в том же каталоге, что и файл htaccess.
В качестве альтернативы использованию url_fopen попробуйте использовать curl.
allow_url_fopen
обычно имеет значение Вкл. Если он не включен, вы можете попробовать две вещи.
.htaccess
и сохраните его в корневой папке (иногда это может потребовать разместить его на одну ступень назад в корневом каталоге) и вставьте этот код там. php_value allow_url_fopen On
php.ini
(для сервера обновлений php5.ini
) и сохраните его в корневой папке (иногда может потребоваться разместить его на один шаг назад в корневом каталоге) и вставьте следующие код там: allow_url_fopen = On;
Я лично протестировал вышеупомянутые решения; они работали для меня.
Если ваш хост использует suPHP, вы можете попробовать создать файл php.ini
в той же папке, что и скрипт, и добавить:
allow_url_fopen = On
(вы можете определить это создание файла и проверка того, какой пользователь он был создан: если вы, это suPHP, если «apache / nobody» или нет, то это обычный режим PHP. Вы также можете создать скрипт
<?php
echo `id`;
?>
Чтобы предоставить ту же информацию, если shell_exec
не является отключенной функцией)