ホームページ >バックエンド開発 >PHPチュートリアル >phpを使ってxmlの3つの値を読み込みたい
$url="http://www.cailele.com/static/ssc/newlyopenlist.xml"; $doc = new DOMDocument(); $doc->load($url); //读取xml文件 $lst = $doc->getElementsByTagName('row'); for ($i=0; $i<2; $i++) { $iframe= $lst->item($i); $t1=$iframe->attributes->getNamedItem('expect')->value; $t2=$iframe->attributes->getNamedItem('opencode')->value; $t3=$iframe->attributes->getNamedItem('opentime')->value; $t1=substr($t1,-9); kjdata($t2,1,$t1,$t3); }
$xml = <<<xml<?xml version="1.0" encoding="utf-8"?><xml><row expect="20140421005" opencode="5,7,3,1,5" opentime="2014-04-21 00:25:30" /><row expect="20140421004" opencode="9,4,7,4,5" opentime="2014-04-21 00:20:30" /><row expect="20140421003" opencode="3,4,4,3,9" opentime="2014-04-21 00:15:30" /><row expect="20140421002" opencode="7,0,2,9,4" opentime="2014-04-21 00:10:30" /><row expect="20140421001" opencode="6,3,8,3,1" opentime="2014-04-21 00:05:30" /><row expect="20140420120" opencode="6,9,3,5,3" opentime="2014-04-21 00:00:30" /><row expect="20140420119" opencode="7,7,0,7,2" opentime="2014-04-20 23:55:30" /><row expect="20140420118" opencode="8,9,4,6,9" opentime="2014-04-20 23:50:30" /><row expect="20140420117" opencode="1,1,2,4,0" opentime="2014-04-20 23:45:30" /><row expect="20140420116" opencode="4,3,8,1,0" opentime="2014-04-20 23:40:30" /></xml>xml;$doc = new DOMDocument();$doc->loadXML($xml); //读取xml文件$items = $doc->getElementsByTagName('row');for ( $i = 0 ; $i < $items -> length ; $i ++) { $t1 = $items -> item ( $i )->getAttribute('expect');//expect的值 $t2 = $items -> item ( $i )->getAttribute('opencode');//opencode的值 $t3 = $items -> item ( $i )->getAttribute('opentime');//opentime的值 var_dump($t1.'|'.$t2.'|'.$t3);}
テスト後、コードに問題はありません
問題は $doc->load($url); が値を取得できないことです
file_get_contents を使用しても URL が値を取得できません
それは、curl でのみ取得できます
取得後、使用できます $doc->loadXML ($str) をロード
その後、コードを使用して処理できます
テスト後、コードに問題はありません
問題は、 $doc->load($url); が値を取得できないことです
URL は file_get_contents を使用することもできます 値を取得できません
取得するには、curl を使用するしかありません
取得した後は、次を使用できます$doc->loadXML($str) をロードします
その後、コードを使用して処理できます
$url = "http://www.cailele.com/static/ssc/newlyopenlist.xml";$doc = new DOMDocument();$doc->loadXML(curl_get($url));$lst = $doc->getElementsByTagName('row');for ($i=0; $i<2; $i++) { $iframe= $lst->item($i); $t1=$iframe->attributes->getNamedItem('expect')->value; $t2=$iframe->attributes->getNamedItem('opencode')->value; $t3=$iframe->attributes->getNamedItem('opentime')->value; $t1=substr($t1,-9); kjdata($t2,1,$t1,$t3);}function kjdata() { echo join(', ', func_get_args()), PHP_EOL;}function curl_get($durl) { $cookiejar = realpath('cookie.txt'); $t = parse_url($durl); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$durl); curl_setopt($ch, CURLOPT_TIMEOUT,5); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_REFERER, "http://$t[host]/"); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $r = curl_exec($ch); curl_close($ch); return $r;}5,9,6,4,2, 1, 140421023, 2014-04-21 01:55:30
7,6,4,2,4, 1, 140421022, 2014-04-21 01:50:30
$url = "http://www.cailele.com/static/ssc/newlyopenlist.xml";$doc = new DOMDocument();$doc->loadXML(curl_get($url));$lst = $doc->getElementsByTagName('row');for ($i=0; $i<2; $i++) { $iframe= $lst->item($i); $t1=$iframe->attributes->getNamedItem('expect')->value; $t2=$iframe->attributes->getNamedItem('opencode')->value; $t3=$iframe->attributes->getNamedItem('opentime')->value; $t1=substr($t1,-9); kjdata($t2,1,$t1,$t3);}function kjdata() { echo join(', ', func_get_args()), PHP_EOL;}function curl_get($durl) { $cookiejar = realpath('cookie.txt'); $t = parse_url($durl); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$durl); curl_setopt($ch, CURLOPT_TIMEOUT,5); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_REFERER, "http://$t[host]/"); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiejar); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $r = curl_exec($ch); curl_close($ch); return $r;}5,9,6,4,2, 1, 140421023, 2014-04-21 01:55:30
7,6,4,2,4, 1, 140421022, 2014-04-21 01:50: 30