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

PHP

リダイレクトしているURLからではcurl()でデータを取得できない!?

なぜか

<?php $rss = "RSSのURLが入ります"; $ch = curl_init($rss); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $xmldoc = curl_exec($ch); curl_close($ch);
simplexml_load_string($xmldoc); ?>

というコードで、

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 25: parser error : expected ...

とエラーが!?

 

どうして!?

理由が分からないので、

取り敢えずいろいろ調べてみると、

=======================================
LocationでリダイレクトされているRSSのURLの場合、
リダイレクト元のURLにはXMLなどのデータがなく、
正常にデータを取得できない!!
=======================================
みたいなことを分かりづらく書いてある記事を見つけました。

 

要は、

$rss = "RSSのURLが入ります";

の部分に

http://www.sample/feed/

というURLを設定していたとします。

が、

実際には

http://www.sample/feed/

http://www.hoge/rss2/feed/

など別のURLへリダイレクトされているので、

データを正常に取得できない!!

 

ということです。

 

なので、

simplexml_load_string()関数でエラーが出てしまったようです。

 

こういう場合は、
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_MAXREDIRS, 10);
というオプションを付けてやると、

LocationでリダイレクトされているURLを辿ってくれるとのことです。

 

まとめてやると、こうなります。

<?php $rss = "RSSのURLが入ります"; $ch = curl_init($rss); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_MAXREDIRS, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $xmldoc = curl_exec($ch); curl_close($ch);
simplexml_load_string($xmldoc); ?>

また一つ勉強になりました!!!

WordPress短期学習プログラム

関連記事

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

    PHP

    PHPでWarningエラーが!!

    PHPでこんなエラーが↓PHP Warning:  PHP Sta…

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

    PHP

    【PHP】ini_setで設定できる内容のまとめ

    ini_setで設定できる内容PHPのini_se…

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

    PHP

    【PHP7】「preg_replace」じゃなく「preg_replace_callback」を使い…

    PHP5.6からPHP7.0へのバージョンアップでエラー…

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

    PHP

    ConoHaのVPSサーバーへPHPの最新バージョン(PHP7)をインストール

    ConoHa VPSへPHPの最新バージョンをインストールする方法…

  5. WP:WordPress(ワードプレス)

    PHP

    WordPressの記事を特定の文字数で丸める

    ブログのトップページやカテゴリー、アーカイブページなどで、記事の一…

  6. CakePHP

    PHP

    Indirect modification of overloaded element of Cak…

    $this-&gt;data = "1";といった具合で、Ca…

コメント

  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