PHP

PHP

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

なぜか

というコードで、

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を辿ってくれるとのことです。

 

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

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

関連記事

  1. PHP

    PHP

    PHPExcel エクセルをダウンロード

    PHPExcelを使ってエクセルファイルを出力する場合、ファイルを…

  2. PHP

    PHP

    「expose_php = off」の設定

    本日は、お客さんが借りられているサーバのPHP設定を1か所変更しました…

  3. PHP

    PHP

    strpos()関数とstrstr()関数

    ある文字列の中に特定の文字列が含まれているかをチェックする場合に、…

  4. MySQL

    PHP

    プレースホルダ(プリペアド・ステートメント)

    私が入社する前に外注先に組んで貰ったかなり古いプログラムになるのですが…

  5. PHP

    PHP

    PHPのタイムゾーン

    PHPでシステムを構築していたのですが、echo date("Y-…

  6. PHP

    PHP

    【PHP】count関数でエラーが出ました。。。

    かなり昔に弊社が作成したシステムがあるのですが、諸々の理由で別サー…

コメント

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

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

最近の記事

  1. JavaScript
  2. バージョンアップ
  3. JavaScript
  4. セキュリティー
  5. JavaScript
PAGE TOP