Ответ 1
Отметьте 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, независимо от того, какие параметры конфигурации установлены. Чтобы сделать это для своего собственного script, просто замените <?
или <?php
.