我正在尝试获取rss源的标题和链接-
https://www.reddit.com/r/gif.rss ( reddit提要)
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;
}我无法获取标题或链接以显示。
发布于 2016-09-20 06:16:49
只需调整您的路径表达式。<content>节点不包含<title>或<link>子节点,尽管它们的内容包含在内容的文本值中。相反,您需要的节点是兄弟节点,因此删除循环路径中的<content>:
$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/
...发布于 2016-09-20 07:13:05
整理好了:
$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');https://stackoverflow.com/questions/39579885
复制相似问题