2013-04-03 118 views
1

我有一个代码,它获取数据,但是当它什么都没有时,我希望它返回一些东西。如果它是空的,返回一些东西在PHP

$upcoming = simplexml_load_file('http://api.website.com'); 

foreach($upcoming->trailer as $x => $updates) {   
$content.= '<center><br><span> ' . $updates->embed . '</span></center>'; 
} 

这是代码。它获取数据,但当它什么都没有时,我希望它说没有视频。

我该怎么做?我试过strlen()但我无法应用它。

我试过strpos,但它也没有工作。

+0

你说的什么意思?如果'simplexml_load_file'失败,它返回'FALSE' – kero 2013-04-03 21:35:43

+0

是的,当它返回FALSE时,它什么也没有显示。但我希望它能说一些例如没有视频。 – 2013-04-03 21:37:01

+1

因此,如果($即将===假)$内容。='没有视频';'? – kero 2013-04-03 21:38:41

回答

1

你可以简单地查看使用simplexml_load_file的结果,并采取相应的行动

if (false === $upcoming) { 
    echo "No Videos"; 
} else { 
    //your foreach loop here 
} 
0

添加一些标志在你的foreach把一个标志,如果事情已经打印或只是检查$即将到来。 然后只需检查标志并回显“没有视频”您的消息。

做这样的:

$Something=false; 
$upcoming = simplexml_load_file('http://api.website.com'); 

foreach($upcoming->trailer as $x => $updates) { 
    if($updates->embed){ 
    $Something=true; 
    }   
    $content.= '<center><br><span> ' . $updates->embed . '</span></center>'; 
} 

if(!$Something){ 
    echo "<center>No videos</center>"; 
} 

或者:

$upcoming = simplexml_load_file('http://api.website.com'); 

if(!$upcoming){ 
    echo "<center>No videos</center>"; 
} 
else{ 
    foreach($upcoming->trailer as $x => $updates) { 
    if($updates->embed){ 
     $Soemthing=true; 
    }   
    $content.= '<center><br><span> ' . $updates->embed . '</span></center>'; 
    } 
} 
+0

我想这个,但如果xml发送另一个文本,而不是假的 – 2013-04-03 21:51:22

+0

我已编辑答案,现在试试。如果$即将到期是空的,两者都应该有效 – FeRtoll 2013-04-03 21:53:21

+0

如果在我的回答中没有从上面的示例中工作,那么尝试将print_r($即将推出); die(“
END”);在simplexml_load_file后面,看看输出是什么。 – FeRtoll 2013-04-03 21:55:09

0
$upcoming = simplexml_load_file('http://api.website.com'); 
if($upcoming == null || $upcoming == false){ 
    $content = "No videos"; 
} 
else{ 
    foreach($upcoming->trailer as $x => $updates) {   
    $content.= '<center><br><span> ' . $updates->embed . '</span></center>'; 
    } 
} 
相关问题