2012年6月 5日

[PHP-users 35728] Re:DOMDocument なんとかなったようです

ようやく解決できたっぽいです。
皆様、本当にありがとうございました。
もうほんと2週間以上これに悩んでおりました。

後藤様の
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'auto');
でいけました。

ただし、
$meta_before = "<meta charset="Shift_JIS"/>";
$meta_after = "<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">";
str_replace($meta_before, $meta_after, $html);
ではいけませんでした。
これは何がいけなかったのでしょうか?
str_replace()を使ったのがいけなかったのか、<などの文字を<などにしなかったのが悪かったのか良く分かりませんでした。
この<meta>を書き換える方法はどのようにすればいいのでしょうか?

"Yoshi Saito"<yk_mailing@xxxxx> wrote:
> 後藤様
>
> ご回答ありがとうございました。
>
> なるほど!!
> HTML5なのですか。
> 自分、今までHTML5は触った事なくて、今初めてヘッダ部の事を知りました。
> HTML5とか書いてなかったので、全然分かりませんでした。
>
> これはかなり重大な見落としですね。
> 非常に参考になりました。
> ちょっと試してみます。
>
>
>
> <gotou1213@xxxxx> wrote:
> > 後藤と申します。
> >
> > DOMDocument::loadHTML は metaタグからHTMLの文字エンコーディングを判断していたと思いますが、
> >
> > http://www.nhk.or.jp/worldwave/abc/popup/abc120423.html
> >
> > ↑の charset が HTML5 な指定になっているため、loadHTML で
> > エンコーディングが解釈できていないからではないでしょうか?
> >
> > 試しにそのページのHTMLをダウンロードして、meta タグの charset の部分を
> > 下記のように書き換えて loadHTML に渡せば上手くいくと思います。
> >
> > <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
> >
> > もしくは loadHTML の直前で
> >
> > $html = mb_convert_encoding($html, 'HTML-ENTITIES', 'auto');
> >
> > などとして、マルチバイト文字を数値文字参照に置き換えてやるとか。
> > _______________________________________________
> > PHP-users mailing list PHP-users@xxxxx
> > http://ml.php.gr.jp/mailman/listinfo/php-users
> > PHP初心者のためのページ - 質問する前にはこちらをお読みください
> > http://oldwww.php.gr.jp/php/novice.php3
> >
> Yoshi Saito
> _______________________________________________
> PHP-users mailing list PHP-users@xxxxx
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
>
Yoshi Saito
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2012年6月 5日 00:36
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/110846
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。