phpQueryのnewDocumentでdomが取得できなかった件
phpQueryでhtmlを取得した後、
DOMを取得しようとnewDocumentを使用したが、取得してきた中身はからっぽ。。。
ログを出してみると、htmlのデータまでは取得で来ているのでどうやらnewDocumentの部分でうまくDOMとして取得できていないみたい。
エラー内容
1 2 3 4 5 |
$html = file_get_contents($url); //HTMLを取得 $dom = phpQuery::newDocument($html); //HTMLのDOMとして取得 |
$htmlには中身が入っているが、この変数$domに値が入ってきていない状態
かれこれ悩み続け、もう一度取ってきたhtmlの中身をよく見ると「�」で文字化けしている部分がありました!
↓エラーログの内容
1 2 3 4 5 6 |
�<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> ・・・・・・・・・ |
そこでこれを削除した後に、newDocumentを使用すると期待通りに動いてくれました!!
ああ、最初からエラーをしっかり見ていたらすぐに気づけたのに、めっちゃ悩んでもったいない時間を過ごしてしまいました。
修正後のコード
1 2 3 4 5 6 7 8 |
$html = file_get_contents($url); //htmlを取得 $html = str_replace('�', '', $html); //文字化けを削除 $dom = phpQuery::newDocument($html); //DOMとして取得 |