PHP が Word で中国語の文字化けを読み取るための解決策: 1. PHP のバージョンを確認する; 2. php.ini を変更してサーバーを再起動する; 3. "iconv('GB2312', 'UTF-8' を渡す) , $test );" 読み込み時の文字化けの問題を解決するだけです。
#この記事の動作環境: Windows 7 システム、PHP バージョン 7.4、Dell G3 コンピューター。
PHP で Word を読み込むときに中国語が文字化けする問題を解決するにはどうすればよいですか?
phpでwordファイルを読み込むと文字化けしてしまうのですが、どうすれば解決できますか?
1. まず、php のバージョンを確認します。できれば 5.6
以降です。 2. PHP を有効にします。 Com 拡張子
// 将以下两行代码放入php.ini中, 并且重启服务器 // 开启扩展 extension=php_com_dotnet.dll // COM扩展里自带的,只需将前面的;去掉就可以了 com.allow_dcom = true
3. コードは次のとおりです:
public function readWord($url) { $word = new COM("word.application") or die("Unable to instantiate Word"); // 打开路径为URL的word,doc或docx都可以 $word->Documents->OPen($url); // 读取内容 $test= $word->ActiveDocument->content->Text; // 统计字数 // $num = strlen($test); // 解决读取过程中乱码问题 $content= iconv('GB2312', 'UTF-8', $test); // 查看版本 // $word_wersion = $word->Version; // 是否要打开文件,0代表否,1代表是 $word->Visible = 0; // 关闭word句柄 $word->Quit(); // 释放对象 $word = null; return [ // 'num' => $num / 2, // 'word_wersion' => $wordWersion, 'content' => $content ]; }
注:
質問 1:
注意する必要があることが 1 つあります。受信 URL は、D:\WWW\ などの絶対アドレスであってはなりません。localhost/... など、独自のフレームワークのルーティング アドレスである必要があります。絶対アドレスを使用してワードの内容を読み取ると、一度しか読み取ることができず、その後ワードがロックされ、読み取ることができなくなるため、エラーが発生します。
質問 2:
この方法を使用すると、Word コンテンツの文字化けを読み取る問題は解決されますが、それはプレーン テキストの Word を読み取る場合に限定され、スタイルがないタイプです。スタイル、画像、フォントなどを含む Word 文書のコンテンツを取得する必要がある場合、この方法は適していません。
これに対処する方法は、Aspos を使用することです。 Java を使用して、アップロードされた Word ドキュメントを HTML 形式に変換する最下位サービスを作成しました。ドキュメント内に画像がある場合、画像は変換後に同じレベルのディレクトリに抽出され、生成された HTML には が残ります。ファイル。<img>
タグ。このようにして、Word 文書のフォントとスタイルは HTML コードになり、元の文書のスタイルが最大限に保持されます。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPのWord読み込みで中国語が文字化けする問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。