PHP не может прочитать внешний файл - PullRequest
2 голосов
/ 04 сентября 2011

Я пытаюсь прочитать внешний файл, размещенный на другом сервере, но у меня возникают проблемы.

Здесь я определяю переменные:

$variable1 = "test";
$variable2 = "testing";

Здесь я идентифицирую URLчитать:

$url = "http://test.com/page.php?v1=" . $variable1 . "&v2=" . $variable2;

Здесь я читаю внешний файл:

$content = file($url);
$reading = $content[0];
echo $reading;

Странно, что ничего не выходит.Я попытался ввести фактический URL, и он работает, однако, когда PHP пытается это сделать, он выходит пустым.

Я знаю, что это не фатальная ошибка, поскольку я пытался просто вставить туда какой-то обычный текст,Итак, что-то не так, что просто неправильно читает файл.Кроме того, я убедился, что сервер чтения не заблокирован сервером, на котором находится файл.

Будем благодарны за любые предложения.

Ответы [ 6 ]

0 голосов
/ 04 сентября 2011

file() загружает данные в массив.Затем вы выводите только первую строку этого документа (echo $reading[0]).Эта первая строка, скорее всего, будет только тегом <html> или, возможно, объявлением типа документа.

Если вы просто пытаетесь отобразить полное содержимое файла, выполните:

echo file_get_contents($url);

Это выбирает указанный URL и возвращает его в виде одной строки - без разбора строки, без создания массива.Просто простая строка со всем файлом в нем.

0 голосов
/ 04 сентября 2011

Если вы выбираете веб-сайт, и он начинается с чего-то вроде <html>, то отображение $ content [0] не будет отображаться при просмотре из браузера.

Попробуйте:

echo htmlentities($content[0]);

Или:

print_r($content);
0 голосов
/ 04 сентября 2011

Если вы используете URL в качестве имени файла, allow_url_fopen должен быть включен в php.ini. Я бы начал там.

0 голосов
/ 04 сентября 2011

Чтобы читать файлы и анализировать их с удаленных URL-адресов, убедитесь, что в вашей конфигурации php.ini включена опция allow_url_fopen .

Пожалуйстаобратите внимание, что по соображениям безопасности эта опция по умолчанию отключена.

http://php.net/manual/en/filesystem.configuration.php

Должен ли я разрешить 'allow_url_fopen' в PHP?

0 голосов
/ 04 сентября 2011

Вы можете попробовать функцию PHP file_get_contents

echo file_get_contents($url);
0 голосов
/ 04 сентября 2011

Кроме того, я удостоверился, что сервер чтения не заблокирован сервером с файлом на нем.

Как вы удостоверились ?


Сначала убедитесь, что allow_url_fopen равно on in php.ini.

Если это on, попробуйте настроить пользовательский агент.Удаленный файл может ожидать действительного пользовательского агента.

ini_set('user_agent', 'Your browser\'s user agent or whatever');

Если это off, попробуйте использовать библиотеку cURL для запроса удаленного файла.Вы также можете использовать cURL для установки пользовательского агента.

...