• 締切済み

PHP5のsimplexml_load_fileで取得した結果をファイルに書き込みたい

よろしくお願いします。 PHP5でSimpleXMLを利用して得られた結果をファイルに書き込む、つまりキャッシュを保存したいのですが、以下のようにやっても作成されるファイルは空のままです。ディレクトリモードは755です。 $url = "http://hoge.co.jp/index.php?a=123"; $cache_file = md5($url); $xml = simplexml_load_file($url); $fp = fopen($cache_file, 'w'); fwrite ($fp, $xml); fclose($fp); どうかご教授よろしくお願いします。

みんなの回答

  • petisuke
  • ベストアンサー率0% (0/2)
回答No.1

原因の違いで対処も変わるので、まずはひとつひとつ確認して原因を洗い出してみてはいかがでしょうか。 1)$xmlには正しく結果が入っているか  入っていないなら、URLが違う、文字コードの設定がおかしいなどの理由が考えられます。  ちなみに、文字コードでひっかかることがあるので、最初のテストに使うXMLファイルはマルチバイトを含めないものでやったほうがいいですよ。 2)fwriteに渡す変数で入力ミスをしていないか サンプルどおりなら間違っていないですが、念のため。 とりあえず思いつくのはこんなところでしょうか。

hola1973
質問者

お礼

回答ありがとうございます。 $xmlは正しく入っています。 echo "<pre>"; print_r($xml); echo "</pre>"; で問題なく出てきます。 ちなみに、他の方法で自己解決しました。 asXML(ファイル名); でも同じことができました。 そのため、今回はasXML();を使いました。 ただし、fwriteでの解決はまだみていません。

関連するQ&A

専門家に質問してみよう