URL 経由で取得できる XML ファイルがあります。を使用してファイルを取得できることはわかっていますが、fopen
スクリプトが を使用しているのを見たことがありますcurl
。curl
overfopen
を使用して XML ファイルを取得する利点はありますか?
3 に答える
allow_url_fopen
でリモート ファイルを開く場合に必要な をfopen
無効にすることができます。そのため、不可能な状況がありfopen('http://...')
ます。
注:この回答では「」と言いますが、fopen
リモートファイルにアクセスできるすべてのPHP関数とまったく同じです:fopen
、、、...file_get_contents
simplexml_load_file
一方、curlは拡張機能であり、常に有効になっているわけではありません。
curl の優れている点の 1 つは、構成が非常に簡単なことと、多数の既存のオプションがあることです(「参考文献」を参照curl_setopt
) 。
がリモート ファイルにアクセスする方法を構成するにはfopen
、少しトリッキーです。通常、ストリームを操作する必要があります(たとえば、こちらを参照)。そして、一般的に言えば、ストリームを習得している開発者よりもcurlを知っている人の方が多いです。
最も安全な方法 - 特に、アプリケーションが管理者ではないサーバーにデプロイされ、再構成できない場合:
- 1 つの解決策を試す
- そして、それがうまくいかない場合は、他のものを試してください
fopen は使い方が簡単で、すべてのサーバー設定がデフォルトで curl をサポートしているわけではないと思います。fopen が問題なく動作する場合は、おそらくそれが最良の選択です。
さて、SimpleXML を使用してファイルをロードする場合は、
simplexml_load_file($filename);
ただし、一部のサーバーでは、この関数からの URL の読み込みが制限されます。この場合、cURL に制限されます。