Проверьте file_get_contents
Руководство по PHP, возвращаемое значение. Если значение равно FALSE
, файл не может быть прочитан. Если значение равно NULL
, то сама функция отключена.
Чтобы узнать больше о том, что может пойти не так с операцией file_get_contents
, вы должны включить отчеты об ошибках и отображение ошибок, чтобы их можно было прочитать.
# Enable Error Reporting and Display:
error_reporting(~0);
ini_set('display_errors', 1);
Вы можете получить более подробную информацию о том, почему вызов не работает, проверив значения INI на вашем сервере. Одно значение напрямую влияет на функцию file_get_contents
: allow_url_fopen
< /а>. Вы можете сделать это, запустив следующий код. Обратите внимание, что если он сообщает, что fopen не разрешен, вам придется попросить своего провайдера изменить этот параметр на вашем сервере, чтобы любой код, требующий этой функции, работал с URL-адресами.
<html>
<head>
<title>Test File</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
</script>
</head>
<body>
<?php
# Enable Error Reporting and Display:
error_reporting(~0);
ini_set('display_errors', 1);
$adr = 'Sydney+NSW';
echo $adr;
$url = "http://maps.googleapis.com/maps/api/geocode/json?address=$adr&sensor=false";
echo '<p>'.$url.'</p>';
$jsonData = file_get_contents($url);
print '<p>', var_dump($jsonData), '</p>';
# Output information about allow_url_fopen:
if (ini_get('allow_url_fopen') == 1) {
echo '<p style="color: #0A0;">fopen is allowed on this host.</p>';
} else {
echo '<p style="color: #A00;">fopen is not allowed on this host.</p>';
}
# Decide what to do based on return value:
if ($jsonData === FALSE) {
echo "Failed to open the URL ", htmlspecialchars($url);
} elseif ($jsonData === NULL) {
echo "Function is disabled.";
} else {
echo $jsonData;
}
?>
</body>
</html>
Если все это не работает, это может быть связано с использованием коротких открытых тегов <?
. Поэтому пример кода в этом ответе был изменен, чтобы использовать <?php
для правильной работы, поскольку он гарантированно будет работать во всех версиях PHP, независимо от того, какие параметры конфигурации установлены. Чтобы сделать это для собственного скрипта, просто замените <?
или <?php
.
person
Community
schedule
17.07.2011
ini_get('allow_url_open')
? - person Gordon   schedule 17.07.2011ini_get('allow_url_fopen')
. Стоит проверить, установлен он или нет. - person Joundill   schedule 24.08.2016