Intereting Posts
Как отправить значение HTTP POST на страницу (PHP) с помощью Python? Массив Cookie для недавно просмотренных – необходимо извлечь данные из массива и кепки cookie в 5 идентификаторов Включение микросекунд в Symfony2 (Doctrine) и MySQL Драйвер mysqlnd имеет только одно расширение api (pdo_mysql) каждый сеанс – это отдельный вызов сервера Как включить функции WordPress в пользовательский .php-файл? Предупреждение: array_push () ожидает, что параметр 1 будет массивом Поиск многомерного массива для значения и возврат нового массива Можем ли мы перезагрузить один из пулов PHP-FPM, не беспокоя других Как отсортировать результаты MySQL по большинству совпадений при использовании LIKE PDO Ввод массива с использованием ключа в качестве имени столбца Ярость + Ларавел, отношение автогидратов Zend_Service_Twitter – сделать API v1.1 готовым Создать POT-файл с помощью Poedit Как я могу получить диапазон дат в php?

Создание динамического RSS-канала из внешнего XML-файла

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

Это все, что они предоставили для создания информации о живых исполнителей:

«Этот запрос используется для получения информации об исполнителях. Вы получите информацию, упакованную в XML-документ. Отправьте свой XML-запрос по HTTP POST на: http: //affliate.streamate.com/ ?????? / SMLResult .xml Обязательно отправьте заголовок «Content-type: text / xml» как часть HTTP-запроса. Вы можете заменить streamate.com фирменным доменом, если он доступен для вас, чтобы URL-адреса были возвращены с тем же брендом домен вместо streamate.com "

Итак, мне удалось выяснить, как вытащить живую информацию из своего XML-канала на php-страницу, выполнив поиск фрагмента кода, но это не RSS-канал, который я могу использовать (для подачи в социальные сети и т. Д.), ,

Если кто-нибудь может дать мне несколько указаний о том, как использовать свой XML-файл в RSS-канале, который ссылается на мой собственный домен whitelabe (так как они указаны наполовину).

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

<?php $curlData = '<?xml version="1.0" encoding="UTF-8"?> <SMLQuery> <Options MaxResults="20"/> <AvailablePerformers Exact="false" PageNum="1" CountTotalResults="true"> <Include> <Country/> <Headline/> <Descriptions></Descriptions> <Rating/> <Age/> <Gender/> <Media>biopic</Media> <FreeChatSort/> <PerformanceSort/> </Include> <Constraints> <StreamType>live,recorded,offline</StreamType> <PublicProfile/> <Name></Name><NoKeywords/> <RelativeURLs/> <NoKeywords/> </Constraints> </AvailablePerformers> </SMLQuery>'; $url='http://affiliate.streamate.com/????/SMLResult.xml'; $curl = curl_init(); curl_setopt ($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl,CURLOPT_TIMEOUT,120); curl_setopt($curl,CURLOPT_HTTPHEADER,array ('Content-Type: application/xml; charset=utf-8',)); curl_setopt ($curl, CURLOPT_POST, 1); curl_setopt ($curl, CURLOPT_POSTFIELDS, $curlData); $result = curl_exec($curl); curl_close ($curl); $xml = simplexml_load_string ($result); // $json = json_encode($xml); // $array = json_decode($json,TRUE); print_r ($result); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Cam Testing Going On :)</title> <link rel="stylesheet" type="text/css" href="streamstyle.css" /> <!--[if IE]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> </head> <body id="home"> <?php foreach ($xml->AvailablePerformers->Performer as $perf) { echo "<br />"; echo "<p>"; echo "<strong>Name: </strong>" .$perf->attributes()->Name ."<br />"; echo "<a href='http://www.mywhitelabeldomain.com/cam/".$perf->attributes()->Name."/?AFNO=X-0-XXXXXX-XXXXXX&UHNSMTY=XXX' target='_blank'><img src='http://mywhitelabeldomain.com".$perf->Media->Pic->Thumb->attributes()->Src."' /></a><br />"; echo "<strong>Age: </strong>" .$perf->attributes()->Age ."<br />"; echo "<strong>About: </strong>" .$perf->attributes()->Headline ."<br />"; echo "<strong>Description: </strong>" .$perf->Descriptions->About ."<br />"; echo "<strong>StreamType: </strong>" .$perf->attributes()->StreamType ."<br />"; echo "<p>"; echo "<br />"; } ?> </body> </html> 

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

Пример структуры запроса XML, Real World Generic

 <?xml version="1.0" encoding="UTF-8"?> <SMLQuery> <Options MaxResults="50" /> <AvailablePerformers QueryId=”MyGenericQuery”> <Include> <Descriptions /> <Media>staticbiopic</Media> </Include> <Constraints> <PublicProfile /> <StreamType>live</StreamType> </Constraints> </AvailablePerformers> </SMLQuery> 

Спасибо за любой совет, который может мне дать. Я действительно хочу научиться этому.

Я знаю, что XML-файл RSS-канала выглядит следующим образом:

 <?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>Website Feed</title> <description>Website Feed coded manually</description> <link>yourdomain.com</link>; <item> <title>A Special Event</title> <description>A Special Teleconference for our customers about our products</description> <link>yourdomain.com/events.htm</link>; </item> </channel> </rss> 

Но я хочу объединить данные из внешнего XML-файла (от моего первого фрагмента кода в начале этого сообщения) в XML-файл rss-файла, но сохраняя использование моего URL-адреса whitelabel в ссылках.

ОБНОВИТЬ

Хорошо, я попытался слить часть PHP-кода в XML-документ с использованием структуры кода rss-кода, но, очевидно, я терплю неудачу, так как не совсем понимаю, что я здесь делаю. Я искал google бесконечно по этому поводу. Вот моя попытка слияния кодов:

 <?php $curlData = '<?xml version="1.0" encoding="UTF-8"?> <SMLQuery> <Options MaxResults="20"/> <AvailablePerformers Exact="false" PageNum="1" CountTotalResults="true"> <Include> <Country/> <Headline/> <Descriptions></Descriptions> <Rating/> <Age/> <Gender/> <Media>biopic</Media> <FreeChatSort/> <PerformanceSort/> </Include> <Constraints> <StreamType>live,recorded,offline</StreamType> <PublicProfile/> <Name></Name><NoKeywords/> <RelativeURLs/> <NoKeywords/> </Constraints> </AvailablePerformers> </SMLQuery>'; $url='http://affiliate.streamate.com/?????/SMLResult.xml'; $curl = curl_init(); curl_setopt ($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl,CURLOPT_TIMEOUT,120); curl_setopt($curl,CURLOPT_HTTPHEADER,array ( 'Content-Type: application/xml; charset=utf-8', )); curl_setopt ($curl, CURLOPT_POST, 1); curl_setopt ($curl, CURLOPT_POSTFIELDS, $curlData); $result = curl_exec($curl); curl_close ($curl); $xml = simplexml_load_string ($result); // $json = json_encode($xml); // $array = json_decode($json,TRUE); print_r ($result); ?> <?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>Website Feed</title> <description>Website Feed coded manually</description> <link>yourdomain.com</link>; <?php foreach ($xml->AvailablePerformers->Performer as $perf) { <item> <title><php? echo ".$perf->attributes()->Name ."?></title> <description><php? echo " .$perf->Descriptions->About ."?></description> <link><php? echo "<a href='http://www.mydomain.com/cam/".$perf->attributes()->Name." /?AFNO=X-0-XXXXXX-XXXXXX&UHNSMTY=XXX?></link>; </item> </channel> </rss> ?> 

ОБНОВЛЕНИЕ 2

Я удалил print_r () в соответствии с инструкциями и сохранил следующий код в виде файла php, загрузил его, но все, что я вижу, является пустой белой страницей. Я не знаю, как изменить тег заголовка, поэтому вы можете объяснить, где должен быть код заголовка и что мне нужно добавить / изменить, пожалуйста?

Это код, который у меня есть, сохраненный как файл php (или должен быть xml-файл, поскольку я хочу, чтобы он был RSS-каналом, а не веб-страницей php).

 <?php $curlData = '<?xml version="1.0" encoding="UTF-8"?> <SMLQuery> <Options MaxResults="20"/> <AvailablePerformers Exact="false" PageNum="1" CountTotalResults="true"> <Include> <Country/> <Headline/> <Descriptions></Descriptions> <Rating/> <Age/> <Gender/> <Media>biopic</Media> <FreeChatSort/> <PerformanceSort/> </Include> <Constraints> <StreamType>live,recorded,offline</StreamType> <PublicProfile/> <Name></Name><NoKeywords/> <RelativeURLs/> <NoKeywords/> </Constraints> </AvailablePerformers> </SMLQuery>'; $url='http://affiliate.streamate.com/?????/SMLResult.xml'; $curl = curl_init(); curl_setopt ($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl,CURLOPT_TIMEOUT,120); curl_setopt($curl,CURLOPT_HTTPHEADER,array ( 'Content-Type: application/xml; charset=utf-8', )); curl_setopt ($curl, CURLOPT_POST, 1); curl_setopt ($curl, CURLOPT_POSTFIELDS, $curlData); $result = curl_exec($curl); curl_close ($curl); $xml = simplexml_load_string ($result); // $json = json_encode($xml); // $array = json_decode($json,TRUE); ?> <?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>Website Feed</title> <description>Website Feed coded manually</description> <link>yourdomain.com</link>; <?php foreach ($xml->AvailablePerformers->Performer as $perf) { <item> <title><php? echo ".$perf->attributes()->Name ."?></title> <description><php? echo " .$perf->Descriptions->About ."?></description> <link><php? echo "<a href='http://www.mydomain.com/cam/".$perf->attributes()->Name." /?AFNO=X-0-XXXXXX-XXXXXX&UHNSMTY=XXX?></link> </item> </channel> </rss> ?> 

Просто натыкаться на эту нить в надежде, что кто-то может помочь? Благодарю.

ОБНОВИТЬ

Я понимаю, что мне нужно установить тип содержимого заголовка. Я искал в Интернете и нашел это:

 <?php header("Content-type:rss/xml"); ?> 

Правильно ли это для rss-канала? Где именно на этой странице я помещаю это?

Кроме того, в моем исходном коде, вставленном выше, уже есть немного кода, относящегося к типу контента:

 'Content-Type: application/xml; charset=utf-8', )); 

Все, что я хочу, это мой оригинальный код, который будет RSS-лентой. Не могу поверить, насколько сложно это найти.

Вы хотите превратить свой пример в полезную RSS-ленту, которую вы можете подключить к своим WL и другим типам сайтов. Это очень легко с тем, что у вас было ранее. В качестве примера можно сделать вид, что вы создаете страницу PHP в приведенном ниже примере домена:

hxxp: //www.example.com/pull_xml.php

Вставьте в это содержимое:

 <?php $curlData = '<?xml version="1.0" encoding="UTF-8"?> <SMLQuery> <Options MaxResults="20"/> <AvailablePerformers Exact="false" PageNum="1" CountTotalResults="true"> <Include> <Country/> <Headline/> <Descriptions></Descriptions> <Rating/> <Age/> <Gender/> <Media>biopic</Media> <FreeChatSort/> <PerformanceSort/> </Include> <Constraints> <StreamType>live,recorded,offline</StreamType> <PublicProfile/> <Name></Name><NoKeywords/> <RelativeURLs/> <NoKeywords/> </Constraints> </AvailablePerformers> </SMLQuery>'; $url='http://affiliate.streamate.com/????/SMLResult.xml'; $curl = curl_init(); curl_setopt ($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl,CURLOPT_TIMEOUT,120); curl_setopt($curl,CURLOPT_HTTPHEADER,array ('Content-Type: application/xml; charset=utf-8',)); curl_setopt ($curl, CURLOPT_POST, 1); curl_setopt ($curl, CURLOPT_POSTFIELDS, $curlData); $result = curl_exec($curl); curl_close ($curl); echo $result; ?> 

Когда вы загружаете эту страницу в свой браузер, вы увидите, что это XML-канал, подходящий для заполнения вашего WL. Чтобы создать определенную RSS-ленту из данных для работы с проприетарным форматом, ожидаемым определенной службой, вам нужно будет обновить свой вопрос в каком формате должен быть фид. Вы можете привести пример корма, который вы хотите подражать.

Кроме того, вы можете изменить все URL-адреса на свою структуру URL-адресов WL, запросив поток и подменив streamate.com своим доменом whitelabel.