我有以下代码将我的Twitter帐户rss feed转换为字符串,以便我可以解析我的关注者用户名。
$url = file_get_contents("MY_TWITTER_RSS_FEED_URL_GOES_HERE");
$source = simplexml_load_string($url);
foreach ($source as $match){
//name of node
$username = " @".$match->author->name;
//removes the name and parentheses ex.kyrober555 (Robert)
$usernames = substr($username, 0, strpos($username, ' '));
//returns usernames only ex.kyrober555
echo $usernames;
}
使用foreach循环我从feed中返回所有15个名称,它看起来像这样。
@ajay54 @marymary770 @funnigurl1209 @jimiwhitten @kyroberthl @tree_bear @crftyldy @sanbrt63 @Sandra516 @DreamFog @KravenSwagNBzz @DreamFog @TheCrippledDuck @TheCrippledDuck @Cass60
现在这就是我想做的事情,但我不确定它是否可能,我不知道我是如何请求你的帮助的。当我为这个php文件加载页面时,它会立即返回所有用户名。我想做的是返回5个用户名,然后做一些事情,然后再返回5个然后再做其他事情,然后返回最后一个5.也许这样的事情,但我不知道......
foreach ($source as $match){
/* Return the 1st 5 user names */
/* do some other type of coding */
/* Return the second set of 5 usernames */
/* do something here */
/* return the last 5 usernames */
}
最终返回所有15个用户名,但不同时间间隔不会同时返回。
答案 0 :(得分:1)
array_slice()总是很好。这样的事情可能是:
for($offset = 0; $offset < count($array); $offset += 5){
$slice = array_slice($array, $offset, 5);
// Do your stuff
}
答案 1 :(得分:0)
$count = 0;
foreach ($source as $match){
$username = " @".$match->author->name;
$usernames = substr($username, 0, strpos($username, ' '));
echo $usernames;
if($count % 5 == 0 && $count > 0) {
// do something else;
}
$count++;
}
感谢@vichle对你的评论,也许最好使用矩阵呢?
$count = 0;
$userArray = array();
foreach ($source as $match){
$username = " @".$match->author->name;
$usernames = substr($username, 0, strpos($username, ' '));
$userArray[$count % 5][] = $usernames;
$count++;
}
这段代码可能需要调整,但它是一个开始..现在你在一个数组中有一个数组。 $ userArray [0]将返回一个包含前5个用户名的数组,$ userArray [1]将返回一个包含第二个5个用户名的数组,等等。