Php 如何限制SimpleXML结果的总数?
我希望限制到前5个结果 这是可行的,但并不限制数据集:Php 如何限制SimpleXML结果的总数?,php,xml,simplexml,twitter,Php,Xml,Simplexml,Twitter,我希望限制到前5个结果 这是可行的,但并不限制数据集: <?php foreach($sxml->status as $status){ $name = $status->user->name; $image =$status->user->profile_image_url; $update =$status->text; $url = "http://twitter.com/" .$status->user->screen_name;
<?php
foreach($sxml->status as $status){
$name = $status->user->name;
$image =$status->user->profile_image_url;
$update =$status->text;
$url = "http://twitter.com/" .$status->user->screen_name;
echo "<li><a href=\"" . $url . "\"><img src=\"" . $image . "\" alt=\"" . $name . " image\" />" . $name . " </a> " . $update . "</li>";
}
?>
我试过这个:
<?php
for($n = 0; $n <= 5; $n++){
$name = $sxml->$status[$n]->user->name;
$image = $sxml->$status[$n]->user->profile_image_url;
$update = $sxml->$status[$n]->text;
$url = "http://twitter.com/" . $sxml->$status[$n]->user->screen_name;
echo "<li><a href=\"" . $url . "\"><img src=\"" . $image . "\" alt=\"" . $name . " image\" />" . $name . " </a> " . $update . "</li>";
}
?>
我真的有点不确定为什么它不起作用。如果我只是这样做:
<?php echo $sxml->status[0]->user->name ?>
然后我得到正确的结果。但是当在for循环中尝试时,我得到NULL
也许需要一段时间?完全不同的设置?非常感谢您在这方面提供的帮助。更改此项:
for($n = 0; $n <= 5; $n++){
$name = $sxml->$status[$n]->user->name;
$image = $sxml->$status[$n]->user->profile_image_url;
$update = $sxml->$status[$n]->text;
$url = "http://twitter.com/" . $sxml->$status[$n]->user->screen_name;
echo "<li><a href=\"" . $url . "\"><img src=\"" . $image . "\" alt=\"" . $name . " image\" />" . $name . " </a> " . $update . "</li>";
}
for($n=0;$n$status[$n]->user->name;
$image=$sxml->$status[$n]->user->profile\u image\u url;
$update=$sxml->$status[$n]->text;
$url=”http://twitter.com/“$sxml->$status[$n]->user->screen\u name;
回显“”$update. ”;
}
为此:
for($n = 0; $n <= 5; $n++){
$name = $sxml->status[$n]->user->name;
$image = $sxml->status[$n]->user->profile_image_url;
$update = $sxml->status[$n]->text;
$url = "http://twitter.com/" . $sxml->status[$n]->user->screen_name;
echo "<li><a href=\"" . $url . "\"><img src=\"" . $image . "\" alt=\"" . $name . " image\" />" . $name . " </a> " . $update . "</li>";
}
用于($n=0;$n状态[$n]->用户->名称;
$image=$sxml->status[$n]->user->profile\u image\u url;
$update=$sxml->状态[$n]->文本;
$url=”http://twitter.com/“$sxml->status[$n]->user->screen\u name;
回显“”$update. ”;
}
你无意中写了这样的话:
<?php echo $sxml->$status[0]->user->name ?>
它试图将$status[0]作为一个变量,当然,它不存在,因此是未定义的/null。如果您有一些有效的方法,为什么要通过更改所有内容来过度复杂化呢?只需将处理限制在前N个条目
$i = 0;
foreach ($sxml->status as $status) {
if (++$i > 5) {
// stop after 5 loops
break;
}
// the rest is identical
}
顺便说一句,$n=0;$n你的意思是不是
$n=0;$n<4;$n++我也尝试过这个,效果很好:-)
foreach($xml->item as$item){
如果(++$i>5){break;}
$item->title.“
”;
}//foreach()
注意我没有使用$I=0;它似乎知道默认情况下;-)
我希望这对某些人有所帮助。Doggonit,这是愚蠢错误的一周。非常感谢你的帮助:)伙计,每个人都有很好的解决方案。我很欣赏第二种方法。所有这些东西在我看到后都很有意义,但解决方案并没有立即出现在我的脑海中。不过,我想这会随着时间的推移而到来。谢谢,乔希,好主意。意识到一旦我实施了它;非常感谢这里的提醒。