Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何限制SimpleXML结果的总数?_Php_Xml_Simplexml_Twitter - Fatal编程技术网

Php 如何限制SimpleXML结果的总数?

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;

我希望限制到前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;

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,这是愚蠢错误的一周。非常感谢你的帮助:)伙计,每个人都有很好的解决方案。我很欣赏第二种方法。所有这些东西在我看到后都很有意义,但解决方案并没有立即出现在我的脑海中。不过,我想这会随着时间的推移而到来。谢谢,乔希,好主意。意识到一旦我实施了它;非常感谢这里的提醒。