2017-07-18 15 views
0

現在、ウェブサイトからxmlファイルを取り出し、ローカルの空のxmlファイル(myxml.xml)に配置しようとしています。私のコードasは空のファイルを返します。URLからローカルファイルにファイルの内容を書き込むPHP

目的は、xmlファイルのコンテンツをhttp://website.com/theirxml.xmlから取得し、myxml.xmlに配置することです。

ホストのウェブサイトのXMLが正しくフォーマットされていないため、自分のローカルバージョンで変更する必要があるため、これを行うのは唯一の理由です。したがって、私が必要とするのはファイルから文字列を取得することです。

<?php 
$myfile = fopen("myxml.xml", "w") or die("Unable to open file!"); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://website.com/theirxml.xml"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($ch); 
fwrite($myfile, $output); 
fclose($myfile); 
?> 
+1

問題はありますか? –

+0

私は応答もエラー文も出ません。 –

+1

あなたの方法や@ colbutonの方法(私が好む)は 'error_reporting(E_ALL);を使います。 ini_set( 'display_errors'、 '1'); ' – AbraCadaver

答えて

4

非常に簡単:このヒントのためのジェイソン・チェンへ

file_put_contents('myxml.xml', file_get_contents('http://website.com/theirxml.xml'); 

Thxを:あなたは、あなたのphp.iniのallow_url_fopenが有効にする必要があります。

+0

あなたの方法で唯一の問題は、 '接続が拒否されました'というエラーが出ることです。 –

+0

@JasonChen 'allow_url_fopen'が有効になっていることをphpinfoで確認しましたか? – Trojan404

1

"simplexml_load_file"機能を使用してXMLからデータを取得できます。

$url="http://website.com/theirxml.xml"; 
$xml = simplexml_load_file($url); 
file_put_contents('myxml.xml',$xml); 
関連する問題