我正在尝试为流式白标网站生成 RSS 提要。网络支持为我提供了有关如何生成任何内容的最基本信息。
这是他们为生成有关现场表演者的信息而提供的全部内容:
“此查询用于检索有关表演者的信息。您将收到打包成 XML 文档的信息。请通过 HTTP POST 将您的 XML 请求发送到: http ://affliate.streamate.com/??????/SMLResult .xml 确保发送“Content-type: text/xml”标头作为 HTTP 请求的一部分。您可以将 streamate.com 替换为品牌域(如果您可以使用),以返回具有相同品牌的 URL域而不是 streamate.com”
因此,我设法通过搜索代码片段来了解如何将实时信息从他们的 XML 提要中提取到 php 页面中,但这不是我可以利用的 RSS 提要(用于输入社交网络等) .
如果有人可以请给我一些关于如何将他们的 XML 文件用于链接到我自己的白标签域的 RSS 提要的指示(正如他们在上面的一半指示)。
下面是我找到并用于在 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 请求结构示例,真实世界通用
<?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>
感谢任何人都可以给我的任何建议。我真的很想学习如何做到这一点。
我知道 RSS 提要 xml 文件如下所示:
<?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 文件的数据(来自我在这篇文章开头的第一个代码片段)合并到一个 rss 提要 xml 文件中,但在链接中保留使用我的 whitelabel url。
更新
好的,我尝试使用 rss 提要代码结构将一些 php 代码合并到 xml 文档中,但显然我失败了,因为我不太明白我在这里做什么。我已经无休止地搜索了谷歌。这是我合并代码的尝试:
<?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 提要。我无法相信这证明查找信息有多么困难。