2017-07-27 1 views
-2

のIMのgettin:XMLを読み込むforeach()の引数が無効ですか?

$urls="http://www.floatrates.com/daily/usd.xml";  

$url= $urls; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
$data = curl_exec($ch); 
curl_close($ch); 
$feed = new SimpleXMLElement($data,LIBXML_NOCDATA); 


foreach ($feed->channel->item as $item) { 
$title  = $item->title; 
if (preg_match('/ARS/',$title)) { 
    echo $title; 
} 

} 

答えて

0
$urls = "http://www.floatrates.com/daily/usd.xml"; 
$url = $urls; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
$data = curl_exec($ch); 
curl_close($ch); 
$feed = new SimpleXMLElement($data, LIBXML_NOCDATA); 
foreach ($feed->children() as $item) { 
if ("item" == $item->getName()) { 
    $title = $item->title; 
     if (preg_match('/ARS/', $title)) { 
      echo $title; 
     } 
    } 

} 
+0

ウラジミールのコードが動作します。 – RockwoodON

+0

はうまくいっています!!しかし、なぜ "$ channel = $ feed-> channel;"という行ですか? – Targaryen

0

それを "foreachのために供給無効な引数()" の

XML

PHPの特定の項目を読み取ろうとする各ラインについておそらく、$ feedに含まれているものが含まれておらず、配列をforeachに渡していないことを意味します。print_r($feed);を使用すると、そこに実際に含まれていることがわかります。

関連する問題