0

wordpress用のパーサーを作ったのですが、wpとdbがutf-8を使っていたり、一部のページのエンコーディングが異なっていたりするので、解析すると文章がおかしくなりました。curl を使用して外部の URL からコンテンツを取得し、一部は一致して正規表現に置き換えます。

この問題を解決する方法はありますか?

以下のジョニからの提案を使用して、問題を解決しました。この問題に関する今後のクエリに使用したサンプル コード:

preg_match("/charset=(.*?)(\n|'|\"|>)/ism", $content, $charset);
$content = preg_replace('/^HTTP+[^<]+</', '<', $content);
$charset = @trim($charset[1]);
if (preg_match("~(windows-1251|1251)~i", $charset)) return 'Windows-1251'; 
elseif (preg_match("~iso-8859-7~i", $charset))  return 'ISO-8859-7';
elseif (preg_match("~(koi8|iso-ir-111)~i", $charset))  return 'KOI8-R';
4

1 に答える 1

0

コンテンツ タイプ ヘッダー (ヘッダーがない場合は HTML メタ タグ) から正しいエンコーディングを検出し、ドキュメントを解析するときにそれを使用します。

于 2013-07-25T15:12:10.783 に答える