PHP(ピー・エイチ・ピー)

PHP

cURL関数を使ってみます!!

XMLファイルのURLを読み込んで処理しようとすると、

PHPの環境設定によってはfile_get_contentsで以下のようなエラーが出ることがあります。

 

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in・・・

 

これは、

php.iniで「URLへのアクセスを許可しませんよ!!」という設定を行なっているからです。

 

php.iniを確認してみて下さい

allow_url_fopen="Off"」となっているはずなので、

これを

allow_url_fopen="On"」と変更することで読み込みを行えるようになります。

※allow_url_fopenの設定は、セキュリティ上の理由で「.htaccess」や「ini_set()」では行えないようになっています。

 

ただ、ここで1点疑問に思うことがあるはずです。

 

セキュリティの観点から「allow_url_fopen」をわざわざOffにしているのに、Onにしてしまっていいの?
と!!

 

そんな場合には、cURL()関数を使ってやります。

<?php $path = "http://maps.google.co.jp/maps/geo?q=%E6%9D%B1%E4%BA%AC%E9%83%BD%E6%B8%AF%E5%8C%BA%E5%85%83%E9%BA%BB%E5%B8%831%E4%B8%81%E7%9B%AE1-1&output=xml&key=2";
if(function_exists("curl_init")){  //一応cURL関数が使えない場合もあるので、関数が存在しているかのチェック  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $path);  curl_setopt($ch, CURLOPT_HEADER, 0);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  $obj = curl_exec($ch);  curl_close($ch); }elseif(ini_get("allow_url_fopen")){  //allow_url_fopenがonになっている場合  $obj = file_get_contents($path); }else{  echo "何か処理を入れてください。"; } ?>

例えば、私であればこんな具合に書きます。

 

簡単に説明すると、

①$ch = curl_init();
cURLを使いますよっていう宣言みたいなものです。

②curl_setopt($ch, CURLOPT_URL, $path);
URLなどのオプションをセットします。

③curl_setopt($ch, CURLOPT_HEADER, 0);
ヘッダも出力する場合の処理です。

④curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec()の実行結果を文字列として返す設定です。

⑤$obj = curl_exec($ch);
実行します。

⑥curl_close($ch);
cURLを使い終わったので、リソースを開放してやります。

WordPress短期学習プログラム

関連記事

  1. PHP(ピー・エイチ・ピー)

    PHP

    PHPで日付けを扱う

    【PHP】date()とstrtotim()で日付を処理…

  2. PHP(ピー・エイチ・ピー)

    PHP

    【PHP】久しぶりのsmartyです!!

    今日はSmartyを触りました。と言っても、作業内容は…

  3. CakePHP

    PHP

    CakePHPのtinyintでハマった!!

    CakePHPでデータベースを作成する時には注意しないといけない点があ…

  4. PHP(ピー・エイチ・ピー)

    PHP

    【PHP5.3】マジッククオートの設定は、オフにしておきましょう!

    マジッククオートについて最近はPHP7が主流になってき…

  5. PHP(ピー・エイチ・ピー)

    PHP

    【PHP】数字を指定の桁数にフォーマット(0埋め)

    PHPを使って、数字を指定した桁数にフォーマットする方法数…

  6. PHP(ピー・エイチ・ピー)

    PHP

    PHPのメモリー不足(Allowed memory size)

    メモリエラー:Allowed memory size of ~…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. URLのwwwあり・なしの統一方法
  2. URLのwwwはあり?なし?
  3. SEO(エスイーオー)
  4. 中古ドメイン(Old Domain)について
  5. CakePHP
  6. Technology-Connection-Net
  7. ドメインにハイフンを使うのは日本人だけ?
  8. SSL(HTTPS)
  9. ドメインについて
  10. WP:WordPress(ワードプレス)
PAGE TOP