質問: $dom2->find('img.rg_i',0); var_dump($img); ``` 詳しい方、ご教示下さい。宜しくお願い致します。
回答: * **`file_get_html()`の結果は文字列ではありません** `mb_convert_encoding()` は**文字列**のエンコーディングを変換する関数ですが、 `simple_html_dom.php` によって提供される `file_get_html()` は文字列ではなく独自のオブジェクトを返すため、`mb_convert_enconding()` に渡すことはできず、エラーが出ています。URLから文字列で取得するときにはPHPの標準関数である `file_get_contents()` を使います。 * **Googleの検索ページはUserAgentによってレスポンスのHTMLを変えています** 詳細は省きますが、UserAgentの有無によってHTMLが変化しているようです。そのためブラウザで見たDOMツリーと異なっているのでしょう。UserAgentを指定してアクセスするか、もしくはUserAgentなしで得られるHTMLに合わせた解析処理を書く必要があるかと思います。 PHPからエラーや警告が出ていないか、取得したHTMLをそのまま文字列で出力してみて狙い通りのものかどうか、順番に確認していくとよいのではないでしょうか。