ホームページ >バックエンド開発 >PHPチュートリアル >phpwordがテンプレートの内容を置き換えて中国語の文字化けを解決
この記事の内容は、phpwordのテンプレートコンテンツを置き換えて、中国語の文字化けの問題を解決する方法を共有することです。必要な友達は参照してください。
それでは、まずダウンロードしてください:
ダウンロード アドレス: https://pan.baidu.com/s/1upup2rpLTVXIdJpGi9kK6A
パスワード: qxsd
Manual http://phpword.readthedocs.io/en/latest/search.html?q =setValue&check_keywords=yes&area=default
//Vendor を使用して PHPWord クラスを含めます
require_once "./word/PHPWord.php";
//PHPWord オブジェクトを初期化します
$PHPWord = new PHPWord();
$oMember[' m_real_name'] = "電子顕微鏡テスト";
$oMember['content'] = "電子顕微鏡テスト要件の説明 電子顕微鏡テスト要件の説明 電子顕微鏡テスト要件の説明 電子顕微鏡テスト
要件の説明 電子顕微鏡テスト要件の説明 電子顕微鏡テスト要件の説明電子顕微鏡テスト要件の説明電子顕微鏡テスト要件の説明電子顕微鏡テスト要件の説明
電子顕微鏡テスト要件の説明電子顕微鏡テスト要件の説明電子顕微鏡テスト要件の説明電子顕微鏡テスト要件の説明電子顕微鏡テスト要件の説明電子顕微鏡テスト要件の説明
電子顕微鏡テスト要件の説明電子顕微鏡テスト要件の説明";
//テンプレート ファイルをロードします
$document = $PHPWord->loadTemplate('./word/test/template1.docx') ;
//ここで中国語を表示したい場合は、iconv 関数を使用する必要があります
$document->setValue('need_name', iconv('utf-8', 'GB2312) //IGNORE', $oMember['m_real_name']));
$document->setValue( 'content',iconv('utf-8', 'GB2312//IGNORE', $oMember['content']) );
//Word テンプレート ファイルのコンテンツを置き換えます。中国語は使用しないでください。 setValue
$ document->setValue('file', "7897898998");
$filename = './word/test/ m-i-'.time().'.docx';
//Word 文書を保存
$document ->save($filename);
//Word 文書をダウンロードするための出力
//header("Location: ".$filename)
テンプレートファイルに書き込む変数
content =》 ${content } この変数にはスタイルを追加しないでください。そうしないと影響を受けます
need_name =》 ${need_name}
file =》 ${file}
このように、いくつかのファイルを変更する必要があることがわかります:
Word/Base.php _WriteTextStyle() メソッド
$objWriter ->writeAttribute('w:eastAsia', $font); //
if($font != 'Arial') { R $ Objwriter-& GTT; ; writeattribute (' w:ascii', $font);
$objWriter->writeAttribute('w:hAnsi', $font);
$objWriter->writeAttribute('w:cs', $font);
$objWriter-> ;endElement();
}
PHPWord/Template.php setValue() メソッド:
if(!is_array($replace)) {// $replace = utf8_encode($replace);
$replace = iconv('gbk','utf-8', $replace); //New}
OK、これで問題ありません
出典: Second-rater
phpの中国語文字化け問題を解決するにはどうすればよいですか?
以上がphpwordがテンプレートの内容を置き換えて中国語の文字化けを解決の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。