Использовать серверную часть Включает команду «include» в HTML-файл - PullRequest
0 голосов
/ 28 августа 2011

Фон

Я пытаюсь включить RSS-канал с помощью PHP в HTML-документ

Код

<?php
include ("feed url");
?> 

Я использовал команду ssl для успешного добавления тега включения в html-файл следующим образом:

<!--#include virtual="rssfeed.php" -->

, который прекрасно работает после редактирования файла htaccess.Теперь проблема в том, что в моем php im с использованием include («feed url») я получаю эту ошибку:

Предупреждение: include () [function.include]: доступ к файлу URL отключен вконфигурация сервера в пути / rssfeed.php в строке 2

Предупреждение: include (URL-адрес канала) [function.include]: не удалось открыть поток: не удалось найти подходящую оболочку в пути / rssfeed.php в строке 2

Теперь стоит отметить, что я попытался установить php_value allow_url_fopen 1, но не повезло, так как файлы хранятся на стороннем хостинг-сервере, поэтому у меня нет большого доступа, поэтому они заблокировали мне обращениеПО по понятным причинам.Итак, мой вопрос: как мне решить эту проблему?Любые указания будут в значительной степени выполнены.

Спасибо всем за чтение.

Ответы [ 2 ]

2 голосов
/ 28 августа 2011

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

Однако, если я вас правильно понял, вы не могли бы просто включить RSS-канал, используя конструкцию include(), так как это недопустимый код PHP - include() ожидает, что путь будет правильным файлом исходного кода PHP. То, что вы делаете, если ваш сервер позволил вам это сделать, приведет к бесполезному выводу или ошибке синтаксического анализа.

Вам необходимо подключиться к каналу RSS (например, с помощью cURL или fsockopen () в зависимости от уровня контроля, который вы хотите выполнить над запросом к удаленному сайту) и проанализировать подайте данные, чтобы вы могли выводить их в удобном формате.

0 голосов
/ 28 августа 2011

include "http://..." - плохая идея, поскольку содержимое http://... оценивается как код PHP, который открывает ваш сайт, открытый для атак, если кто-то может внедрить код PHP в ответ на этот канал RSS.

Используйте curl, если вы хотите отобразить данные с другого сайта. Из PHP Manual пример:

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>
...