2013-05-04 65 views
0

我有以下代码,看看wolfram阿尔法xml数据,并拉出围绕在<plaintext>标签中的答案。它适用于第一个标签,但不适用于答案之后。代码不完全解析数据

代码:

<?php 
$url = "http://api.wolframalpha.com/v2/query?input=what+day+is+today&appid=9QA6R9-VGL4AAURHU&format=plaintext&podtitle=Result"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
ob_start(); 
curl_exec($ch); 
curl_close($ch); 
$contents = ob_get_contents(); 
ob_end_clean(); 
echo $contents; 

下面是答案,我得到:

Monday, May 3, 2011</plaintext> 
    </subpod> 
</pod> 
<sources count='2'> 
    <source url='http://www.wolframalpha.com/sources/AstronomicalDataSourceInformationNotes.html' 
     text='Astronomical data' /> 
    <source url='http://www.wolframalpha.com/sources/PeopleDataSourceInformationNotes.html' 
     text='People data' /> 
</sources> 
</queryresult> 
+0

您好!这对我来说可以。记住要查看源代码,而不仅仅是浏览器显示的内容。 – 2013-05-04 00:58:26

回答

2

试试这个:

<?php 
$url = "http://api.wolframalpha.com/v2/query?input=what+day+is+today&appid=9QA6R9-VGL4AAURHU&format=plaintext&podtitle=Result"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
ob_start(); 
curl_exec($ch); 
curl_close($ch); 
$contents = ob_get_contents(); 
ob_end_clean(); 

function get($a,$b,$c){ 
    $y = explode($b,$a); 
    $x = explode($c,$y[1]); 
    return $x[0]; 
} 

echo get($contents,'<plaintext>','</plaintext>'); 
?> 
+0

我把那条线放在哪?我不明白它应该去的地方。 – derekshull 2013-05-04 01:05:19

+1

用'echo $ contents;'替换它,这也只是为了您的观看乐趣,您已经可以使用这些信息了。它显示奇怪的唯一原因是因为您在浏览器中查看它。 – 2013-05-04 01:05:35

+0

显示了整个xml代码。所有的。 – derekshull 2013-05-04 01:10:00