2013-04-03 116 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>'; 
    } 
} 
相關問題