1

我正在尝试为流式白标网站生成 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”&gt;
<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 提要。我无法相信这证明查找信息有多么困难。

4

1 回答 1

0

您希望将您的示例变成一个可用的 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;

?>

当您将该页面加载到浏览器中时,您会看到它是一个适合填充 WL 的 XML 提要。要从数据创建特定的 RSS 提要以使用特定服务预期的专有格式,您必须使用提要应采用的格式更新您的问题。您可以举一个您希望模拟的提要示例。

此外,您可以通过请求流并将 streamate.com 替换为您的 whitelabel 域来将所有 URL 更改为 WL 的 URL 结构。

于 2015-04-09T23:58:10.067 回答