Firefox で開くと、約 23 から 30 MB の XML ドキュメントを生成しようとしています。
XML Parsing Error: not well-formed
Location: file:///Users/User/Downloads/export(2).xml
Line Number 137725, Column 1343:
その後、ドキュメントを検証しようとするとXML Nanny
、次のエラーが表示されます。
Invalid Character (Unicode: 0xB)
数 (13) 行: 137725、137738、137751、137764、137777、137790、137803、137816、146834、189949、193444、193457、193470
以下を含むいくつかの「解決策」を試しました。
正規表現:
preg_replace( '/[^\x9\xA\xD\x20-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}]+/' , ' ', $data->Description);
ここでの問題は、Apache で mod セキュリティが有効になっているために内部サーバー エラーが発生するため、これが有効な RegEx であるかどうか確信が持てないことです。
ファイルをBOM付きのUTF-8で保存しようとしましたが、それは必死でした
「UTF-8 // IGNORE」でiconvを使用しようとしましたが、これは役に立ちませんでした
文字ごとの置換を使用しようとしましたが、23万行あるため、これは私のファイルではうまく機能しませんでした..その問題がある特定のタグを置き換えても、phpでmax_execution_timeディレクティブをトリガーし、私のスクリプトは殺されました。
今のところ私の解決策は、この無効な文字のデータベース レコードを手動で消去することですが、これは私の問題に対する適切かつ正しい解決策です。将来的には、このスクリプトを使用してこのエクスポートを自動化し、手動編集はオプションまたはスピーチの対象ではないからです。