2013-06-04 204 views
-5

如何將以下鏈接的網頁內容保存到xml文件中?下面的代碼不適合我。將輸出保存在xml文件中

<?php 
$url = "https://services.boatwizard.com/bridge/events/ae0324ff-e1a5-4a77-9783-f41248bfa975/boats?status=on"; 
copy($url, "file.xml"); 
?> 
+0

[如何獲得有用的er ror消息在PHP?](http://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php) – hakre

回答

0

這是可以做到如下:

function savefile($filename,$data){ 
$fh = fopen($filename, 'w') or die("can't open file"); 
fwrite($fh, $data); 
fclose($fh); 
} 

$data = file_get_contents('your link'); 
savefile('file.xml',$data); 
+0

謝謝!!但得到一個錯誤,因爲無法打開文件.. – user2334667

+0

這是因爲你沒有權限寫入當前目錄。 – mrida

0

使用2個功能file_get_contents()file_put_contents();

file_get_contents - 獲取文件的內容,如果fopen包裝已啓用,則可以使用該URL作爲文件名。

file_put_contents - 把第二個參數的內容,在第一個參數指定的文件

<?php 
    $url = "https://services.boatwizard.com/bridge/events/ae0324ff-e1a5-4a77-9783-f41248bfa975/boats?status=on"; 
    file_put_contents('file.xml',file_get_contents($url)); 
    @chmod('file.xml', 0755); 
?> 
+0

這裏有很多安全考慮。至少,請'chmod' file.xml,這樣它不是世界可執行的。 –

2

您也可以下載給定鏈路通過到file.xml的內容捲曲:

<?php 
$url = 'https://services.boatwizard.com/bridge/events/ae0324ff-e1a5-4a77-9783-f41248bfa975/boats?status=on'; 
$fp = fopen (dirname(__FILE__) . '/file.xml', 'w+'); 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_TIMEOUT, 50); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
?> 
+0

如果捲曲無法解決,該怎麼辦? :) – Robert

+0

正確,應該安裝Curl,但嘿,我們可以繼續前進,繼續前進...如果PHP未安裝,如果防火牆阻止了他的傳出連接,該怎麼辦... – Kenny

+0

您的解決方案贏了在這種情況下也不能工作:P – Robert