㈠ php怎麼採集xml裡面的內容
親,很高興為你解答:
首先該XML是必須要通過cURL偽造正常的UA才可以訪問,否則返回的是HTTP 403。
個人建議是用SimpleXMLElement做,操作起來比較方便。
截圖如下:
<?php
$headers["User-Agent"]="null";
$headerArr=array();
foreach($headersas$n=>$v){
$headerArr[]=$n.':'.$v;
}
$ch=curl_init("http://www.cailele.com/static/ssc/newlyopenlist.xml");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArr);
curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);
$content=curl_exec($ch);
$xml=simplexml_load_string($content);
for($i=0;$i<count($xml->row);$i++){
foreach($xml->row->attributes()as$k=>$v){
echo"".$k."=>".$v;
}
echo"<br/>";
}
?>
-----------------------------------
如有疑問歡迎追問!
滿意請點擊右上方【選為滿意回答】按鈕
㈡ 急!!!利用PHP獲取XML頁面信息
這個連接介紹的方法在實踐中並不經常使用,因為很原始。它適合操作本地文件。
1.如若你是獲取xml,那應該使用
simplexml_load_file('url')這個函數,他返回一個xml的DOM模型對象,這個模塊是專門針對xml應用設計的。具體可以查找php的simpleXML相關應用。
2.如果你是獲取html。那麼,php中幾乎所有的目錄函數都支持遠程操作,即文件參數可以是網址。最適合的函數是file_get_contents('url'),他返迴文件內容。
但是大部分免費空間禁止遠程調用,如果是這樣,fopen()或者其他函數都是不行的。那就只能在網頁中用javascript獲取然後處理或者送回網站處理,此方面內容屬於ajax技術,你可以搜索一下。
3.你如果要用到比較復雜一點的功能,比如要打開的頁面
需要登陸,或者需要模擬cookie,就要用php的cURL庫擴展,你可以找一下相關資料
我不能用一篇短文使你學會這幾個模塊的具體應用。
㈢ 如何通過PHP生成和獲取XML格式數據
1自己拼,XML編碼
<?php
header('Content-type:text/xml');
echo "<?xml version='1.0' encoding='utf-8'>";
echo "<book>";
echo "<PHP>";
echo "<name>PHP程序開發範例寶典</name>";
echo "<price 單位='元/本'>89.00</price>";
echo "<date>2007-09-01</date>";
echo "</PHP>";
echo "</book>";
?>
拼接的效果
㈣ PHP讀取XML數據
編碼問題,function
characterData改成如下
function
characterData($parser_instance,
$xml_data)
{
global
$name,$position;
$xml_data=iconv("utf-8","gb2312",$xml_data);//轉換成gb2312
if($position)
echo
$xml_data."<br>";
if($name)
echo
$xml_data."<br>";
}
顯示的那個頁面也要有charset=gb2312
㈤ PHp怎麼獲取網路傳過來的xml文件
<?php
$xml_string=file_get_contents("php://input");
$xml_string=trim($xml_string);
$xml_object=simplexml_load_string($xml_string);
$xml_arr=get_object_vars($xml_object);
只要別人訪問你這個文件傳遞xml。你就能獲取其中的信息了。
㈥ PHP讀取xml文件
以前做過聯通或電信的service訂購介面,收到的內容就是XML的,需要用到PHP的XML處理功能,你的代碼可以這樣:
<xmp>
<?php
$string=file_get_contents("http://www.orderjiaju.com/zixun/data/rss/3.xml");
if($string!=""):
$xml = new DomDocument('1.0');
$xml->loadXML($string);
//班台
$BanTai=array(
'Title'=>$xml->getElementsByTagName('channel')->item(0)->childNodes->item(1)->nodeValue,
'Link' =>$xml->getElementsByTagName('channel')->item(0)->childNodes->item(3)->nodeValue
);
for($i=0;$i<3;$i++)
{
$Title[]=array(
'Title'=>$xml->getElementsByTagName('item')->item($i)->childNodes->item(1)->nodeValue,
'Link' =>$xml->getElementsByTagName('item')->item($i)->childNodes->item(3)->nodeValue
);
}
print_r($BanTai);
print_r($Title);
endif;
?>
</xmp>
回答補充:
現在你直接,然後執行沒效果嗎?
我這里是可以的呢,測試網址是:service.020i.net/test_xml.php
㈦ php如何通過xml傳遞數據
獲取request中body的字元串數據,比如一個數組轉成xml後,你用post方式給伺服器發送xml的字元串,伺服器就用file_get_contents('php://input') 去讀取xml格式 然後轉成數組即可
㈧ php 讀取xml文件的方法
首先 你的 XML文件代碼錯了, 要改下<user> 缺少斜杠 應該是</user>
XML文件代碼:
<?xml version="1.0" encoding="utf-8"?>
<users>
<user id="1" title="哈哈">張三</user>
<user id="2" title="呵呵">李四</user>
</users>
PHP文件代碼:
<?php
// 首先要建一個DOMDocument對象
$xml = new DOMDocument();
// 載入Xml文件
$xml->load('1.xml');
// 獲取所有的user標簽
$user = $xml->getElementsByTagName('user');
// 獲取user標簽的數量
$len = $user->length;
$data = array();
for($i=0;$i<$len;$i++) {
$data[$i] = array();
//第1個 item 代表 user標簽的 順序 第2個 item 代表屬性的順序
$data[$i]['id'] = $user->item($i)->attributes->item(0)->nodeValue;
$data[$i]['title'] = $user->item($i)->attributes->item(1)->nodeValue;
$data[$i]['value'] = $user->item($i)->nodeValue;
}
print_r($data);
?>