SimplePie RSS 解析 - 从 get_title 中随机取出单词?
SimplePie RSS Parsing - Take out words randomly from get_title?
我目前正在使用 SimplePie 来解析 RSS 新闻提要。我成功地使用数组合并了提要,但是我需要做的是从标题中随机 return 个单词,而不仅仅是整个标题。这完全可以在 PHP 中完成吗?我在玩 explode()
;然而没有任何运气。
在数据解析后,我是否需要引入某种 Javascript 之类的东西?我知道这有点含糊,我只是想了解什么是可能的(我愿意使用 SimplePie 的替代品,这正是我目前使用的)。
这是我现在的代码,它只是 return 整个标题:
<?php
//link simplepie
require_once ('simplepie/autoloader.php');
//new simplepie class
$feed = new SimplePie();
$feed->enable_cache(true);
$feed->set_cache_duration(60);
//set up feeds
$feed->set_feed_url(array('http://mf.feeds.reuters.com/reuters/UKTopNews' , 'http://www.theguardian.com/world/rss'
));
//run simplepie
$feed->init();
//handle content type
$feed->handle_content_type();
?>
<!DOCTYPE html>
<head>
<title>News</title>
<link rel="stylesheet" type="text/css" href='style.css'>
</head>
<body>
<div class = "headlines">
<?php foreach ($feed->get_items(0, 10) as $item): ?>
<?php $item->get_title(); ?>
<h4><?php echo $item->get_title(); ?></h4>
<?php endforeach; ?>
</div>
</body>
</html>
谢谢!
I need to do is return single words at random from the title
希望我答对了你的问题,"return a random word from title",对吧?
您的问题与 SimplePie 无关。每当你遇到问题时,尽量把它减少到最小的问题:在这里它只是一个 "how to work with strings" 问题。
为了你的use-case:
$title = $item->get_title();
echo array_rand(array_flip(explode(' ', $title)), 1);
独立示例:
$string = 'This is an example headline and it contains a lot of words.';
echo array_rand(array_flip(explode(' ', $string)), 1);
这是如何工作的:
首先,标题字符串在 space 字符处展开。
你得到一个数组。它是 key=>value,其中 value 是字符串中的一个词。
现在,我们翻转值和键 - 将值作为键,然后我们使用 array_rand().
随机选择 1 个元素
这可能需要一些额外的调整来删除逗号和句号并使其与特殊字符一起使用。但它应该可以帮助您入门。
我目前正在使用 SimplePie 来解析 RSS 新闻提要。我成功地使用数组合并了提要,但是我需要做的是从标题中随机 return 个单词,而不仅仅是整个标题。这完全可以在 PHP 中完成吗?我在玩 explode()
;然而没有任何运气。
在数据解析后,我是否需要引入某种 Javascript 之类的东西?我知道这有点含糊,我只是想了解什么是可能的(我愿意使用 SimplePie 的替代品,这正是我目前使用的)。
这是我现在的代码,它只是 return 整个标题:
<?php
//link simplepie
require_once ('simplepie/autoloader.php');
//new simplepie class
$feed = new SimplePie();
$feed->enable_cache(true);
$feed->set_cache_duration(60);
//set up feeds
$feed->set_feed_url(array('http://mf.feeds.reuters.com/reuters/UKTopNews' , 'http://www.theguardian.com/world/rss'
));
//run simplepie
$feed->init();
//handle content type
$feed->handle_content_type();
?>
<!DOCTYPE html>
<head>
<title>News</title>
<link rel="stylesheet" type="text/css" href='style.css'>
</head>
<body>
<div class = "headlines">
<?php foreach ($feed->get_items(0, 10) as $item): ?>
<?php $item->get_title(); ?>
<h4><?php echo $item->get_title(); ?></h4>
<?php endforeach; ?>
</div>
</body>
</html>
谢谢!
I need to do is return single words at random from the title
希望我答对了你的问题,"return a random word from title",对吧? 您的问题与 SimplePie 无关。每当你遇到问题时,尽量把它减少到最小的问题:在这里它只是一个 "how to work with strings" 问题。
为了你的use-case:
$title = $item->get_title();
echo array_rand(array_flip(explode(' ', $title)), 1);
独立示例:
$string = 'This is an example headline and it contains a lot of words.';
echo array_rand(array_flip(explode(' ', $string)), 1);
这是如何工作的:
首先,标题字符串在 space 字符处展开。 你得到一个数组。它是 key=>value,其中 value 是字符串中的一个词。 现在,我们翻转值和键 - 将值作为键,然后我们使用 array_rand().
随机选择 1 个元素这可能需要一些额外的调整来删除逗号和句号并使其与特殊字符一起使用。但它应该可以帮助您入门。