首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析Reddit RSS提要- PHP

解析Reddit RSS提要- PHP
EN

Stack Overflow用户
提问于 2016-09-20 02:33:22
回答 2查看 782关注 0票数 0

我正在尝试获取rss源的标题和链接-

代码语言:javascript
复制
https://www.reddit.com/r/gif.rss 

( reddit提要)

代码语言:javascript
复制
xml=simplexml_load_file("https://www.reddit.com/r/gif.rss") or die("Error: Cannot create object");

foreach ($xml->entry->content as $x) {
$title = $x->title;
$string = $x->link;
echo $title;
echo "<br>";
echo $string;
}

我无法获取标题或链接以显示。

EN

回答 2

Stack Overflow用户

发布于 2016-09-20 06:16:49

只需调整您的路径表达式。<content>节点不包含<title><link>子节点,尽管它们的内容包含在内容的文本值中。相反,您需要的节点是兄弟节点,因此删除循环路径中的<content>

代码语言:javascript
复制
$xml = simplexml_load_file("https://www.reddit.com/r/gif.rss") 
                              or die("Error: Cannot create object");
foreach ($xml->entry as $x) {
    $title = $x->title;
    $string = $x->link['href'];
    echo $title;
    echo "<br>";
    echo $string;
}

// This guy loves his job
// <br>
// https://www.reddit.com/r/gif/comments/53i3jc/this_guy_loves_his_job/
// Letron BMW E92 Transformer
// <br>
// https://www.reddit.com/r/gif/comments/53i13r/letron_bmw_e92_transformer/
// MRW "you're cute when you're angry"
// <br>
// https://www.reddit.com/r/gif/comments/53ihpf /mrw_youre_cute_when_youre_angry/
// Pussy Pass Denied
// <br>
// https://www.reddit.com/r/gif/comments/53hm3w/pussy_pass_denied/
// My favorite reverse gif so far
// <br>
// https://www.reddit.com/r/gif/comments/53ihwr/my_favorite_reverse_gif_so_far/
// Oh hooman, you will hug me. --Dog
// <br>
// https://www.reddit.com/r/gif/comments/53cbcq/oh_hooman_you_will_hug_me_dog/
...
票数 1
EN

Stack Overflow用户

发布于 2016-09-20 07:13:05

整理好了:

代码语言:javascript
复制
$xml=simplexml_load_file("https://www.reddit.com/r/gif.rss") or die("Error: Cannot create object");

function extractString($string, $start, $end) {
    $string = " ".$string;
    $ini = strpos($string, $start);
    if ($ini == 0) return "";
    $ini += strlen($start);
    $len = strpos($string, $end, $ini) - $ini;
    return substr($string, $ini, $len);
}


foreach ($xml->entry as $x) {
$string = $x->content;

$url =  extractString($string, '<span><a href="', '">[link]</a></span>');
$title = extractString($string, 'alt="', '" title');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39579885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档