Tôi đang gọi phương thức PHP cURL trên máy chủ và phản hồi là loại XML. cURL đang lưu đầu ra (sau khi xóa các thẻ) trong một biến kiểu vô hướng. Có cách nào để lưu trữ nó trong một đối tượng/băm/mảng để dễ phân tích cú pháp không?PHP cURL, trích xuất phản hồi XML
Trả lời
<?php
function download_page($path){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$path);
curl_setopt($ch, CURLOPT_FAILONERROR,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$retValue = curl_exec($ch);
curl_close($ch);
return $retValue;
}
$sXML = download_page('http://alanstorm.com/atom');
$oXML = new SimpleXMLElement($sXML);
foreach($oXML->entry as $oEntry){
echo $oEntry->title . "\n";
}
không, CURL không có bất kỳ điều gì với phân tích cú pháp XML, nó không biết bất kỳ điều gì về nội dung được trả lại. nó phục vụ như một proxy để có được nội dung. tùy thuộc vào bạn phải làm gì với nó.
sử dụng JSON nếu có thể (và json_decode) - nó dễ dàng hơn để làm việc với, nếu không thể, sử dụng bất kỳ thư viện XML cho parsin như DOMXML: http://php.net/domxml
Chỉ cần thêm header('Content-type: application/xml');
trước tiếng vang của mình trong những Phản hồi XML và bạn sẽ thấy một trang XML.
Ví dụ:
<songs>
<song dateplayed="2011-07-24 19:40:26">
<title>I left my heart on Europa</title>
<artist>Ship of Nomads</artist>
</song>
<song dateplayed="2011-07-24 19:27:42">
<title>Oh Ganymede</title>
<artist>Beefachanga</artist>
</song>
<song dateplayed="2011-07-24 19:23:50">
<title>Kallichore</title>
<artist>Jewitt K. Sheppard</artist>
</song>
thì:
<?php
$mysongs = simplexml_load_file('songs.xml');
echo $mysongs->song[0]->artist;
?>
Output trên trình duyệt của bạn: tàu của Nomads
tín: http://blog.teamtreehouse.com/how-to-parse-xml-with-php5
đơn giản tập tin tải xml ..
$xml = @simplexml_load_string($retValuet);
$status = (string)$xml->Status;
$operator_trans_id = (string)$xml->OPID;
$trns_id = (string)$xml->TID;
?>
$sXML = download_page('http://alanstorm.com/atom');
// Comment This
// $oXML = new SimpleXMLElement($sXML);
// foreach($oXML->entry as $oEntry){
// echo $oEntry->title . "\n";
// }
// Use json encode
$xml = simplexml_load_string($sXML);
$json = json_encode($xml);
$arr = json_decode($json,true);
print_r($arr);
download_page(), thực sự? Ít nhất là khi bạn đề xuất một hàm, hãy gắn liền với các hàm dựng sẵn hoặc xác định các hàm bạn đang đề xuất. Người mới có thể dễ dàng bị lạc. Tôi đề nghị bạn chỉnh sửa và thay thế nó bằng một file_get_contents đơn giản() ít nhất. – Darthur
- 1. Lưu phản hồi curl vào biến php
- 2. IbPy: Cách trích xuất phản hồi API thành biến số
- 3. Trích xuất phản hồi yêu cầu được bảo vệ từ AWS SDK cho PHP
- 4. Curl PHP, truy xuất Địa chỉ IP máy chủ
- 5. Làm cách nào để lưu cookie từ phản hồi cho yêu cầu cURL bằng php?
- 6. PHP cURL chỉ yêu cầu gửi và không chờ phản hồi
- 7. cách trích xuất dữ liệu từ tệp xml bằng notepad ++?
- 8. Trích xuất giá trị duy nhất từ phản hồi JSON Python
- 9. C# trích xuất dữ liệu từ XML
- 10. Codeigniter PHP JSON gửi phản hồi HTML
- 11. Truy xuất chỉ tiêu đề trong php qua curl
- 12. Xử lý phản hồi SOAP
- 13. SoapUI MockServices trả về html thay vì phản hồi xml
- 14. IE9 từ chối xử lý phản hồi XML
- 15. cách trích xuất dữ liệu phản hồi json trong jmeter bằng cách sử dụng trình trích xuất biểu thức chính quy?
- 16. Trình khám phá Internet chặn phản hồi XML
- 17. Gói yêu cầu Python: Xử lý phản hồi xml
- 18. Làm cách nào để truy xuất phản hồi lỗi PHP exec()?
- 19. Giám sát PHP/Curl sử dụng Fiddler
- 20. Giải nén phản hồi http đã nén gzip
- 21. Kiến thức API Web ASP.NET Đề xuất/Phản hồi
- 22. jQuery Ajax: phản hồi pdf
- 23. Làm thế nào để trích xuất nội dung phản hồi HTTP từ một cuộc gọi yêu cầu Python?
- 24. Làm thế nào để trích xuất dữ liệu từ một phản ứng SOAP trong Java?
- 25. cách trích xuất văn bản bên ngoài thẻ xml
- 26. Cách tìm/trích xuất dữ liệu từ xml bằng jQuery
- 27. Android XML được trích xuất từ APK - Mã hóa kém
- 28. Phản hồi đa kênh HTTP sử dụng Perl hoặc PHP
- 29. Phản hồi JSON PHP chứa tiêu đề HTML
- 30. AJAX/Jquery - Nhận phản hồi từ tệp php
Ông có thể mở rộng vào những gì bạn có nghĩa là bởi "sau khi loại bỏ các thẻ". –