ли im пытается создать файл или использовать file_get_contents на внешнем url, я просто не могу заставить fopen (или curl) код работать. Я проверил phpinfo и allow_url_fopen, allow_url_include & curl все включено и даже посмотрел на php5/apache2/php.ini, и все они включены. Но не важно, что я делаю без PHP-кода. Ниже приведены некоторые примеры (которые работают с wamp/localhost, но не при переносе на веб-сервер)
создать html файл в папке (работает на localhost/wamp-сервере Windows)
if (!file_exists('media/folder')) {
mkdir('media/folder', 0755, true);
}
$config_file = 'media/folder/config.html';
$config_file_handle = fopen($config_file, 'w') or die('Cannot open file: '.$config_file); //implicitly creates file
$config_file = 'media/folder/config.html';
$config_file_handle = fopen($config_file, 'w') or die('Cannot open file: '.$config_file);
$config_data = 'add to my file content'.PHP_EOL.'
';
fwrite($config_file_handle, $config_data);
Не работает на реальном сервере. Довольно сложно, так как это необходимо для работы, и попробовал много вариантов завитка, но не удалось.
Ниже приведен фрагмент кода PHP, который работает локально, но не работает.
<?php
//works locally if external url used
//works locally if local file used
//Does not work live server if external url used
//Does work live server if local server url used
$string = file_get_contents('my url');
$json_a = json_decode($string, true);
foreach ($json_a as $person_name) {
//Person Name
echo $person_name['PersonName'];
}
?>
Не могу добиться того, что намеревалось сделать, если я не могу заставить это работать.
Любая помощь
Чрезвычайно распространенная ошибка, возможно, вам придется разрешить пользователям www-data получать доступ к вашим нужным файлам. Просто щелкните правой кнопкой мыши по файлу или папке, которую вы хотите настроить, перейдите на вкладку "Разрешения" и установите www-данные владельцу.
mkdir()
будет успешным, только если веб-сервер уже имеет разрешение на запись в родительский каталог того, который вы пытаетесь создать. Это означает, что ваш веб-сервер должен иметь разрешение на запись в текущий каталог, где работает этот код - это немного опасно. Еслиmkdir()
не работает, вы сразу увидите предупреждения об этом.