最近、PHPでEXCELをいじっています。
XMLデータから取得したデータを表に整形してみようかなと思ってやってます。
できたら紹介させていただきます。
さて、作ったアプリがある程度完成したところでレンタルしてるサーバーにuploadしたところ…
できない!できない!!できない!!!
どうやら次のコードの$original_xml = simplexml_load_file($url);で失敗してました。
1 2 |
$original_xml = simplexml_load_file($url); $data = get_object_vars($original_xml); |
phpのsimplexml_load_file()はftpやhttpのプロトコルを使ってリモートファイルを扱うようですが、
phpの設定で、allow_url_fopen = off になっていると出来ないようです。
php.ini設定についてを見ていると、allow_url_fopenの設定項目がないことに気づき、禿げかけました。
途方にくれていると神のようなこちらのサイトにたどり着き解決しました。
上で書いた2行を以下のように書き換えたら、全く同じ動きになりました!
1 2 3 4 5 6 7 8 9 10 11 |
$xml_data = ""; $cp = curl_init(); curl_setopt($cp, CURLOPT_RETURNTRANSFER, 1); curl_setopt( $cp, CURLOPT_HEADER, false ); curl_setopt($cp, CURLOPT_URL, $url); curl_setopt($cp, CURLOPT_TIMEOUT, 60); $xml_data = curl_exec($cp); curl_close($cp); $original_xml = simplexml_load_string($xml_data); $data = get_object_vars($original_xml); |
<<まとめ>>
simplexml_load_file()を使えないときはどっちかで対応!
- php.iniのallow_url_fopen = onに変更
- cURLで回避