Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Problem mit verstümmelten PHP-Worten

So lösen Sie das Problem mit verstümmelten PHP-Worten

藏色散人
藏色散人Original
2020-10-22 09:42:572458Durchsuche

Lösung für verstümmeltes PHP-Wort: Öffnen Sie zuerst die Datei „/Writer/Word2007/Base.php“ und fügen Sie dann den Inhalt von „$objWriter->writeAttribute('w:eastAsia', $font)“ hinzu Änderungen.

So lösen Sie das Problem mit verstümmelten PHP-Worten

Empfohlen: „PHP-Video-Tutorial

PHPword löst verstümmelte chinesische Zeichen

1. Unterstützung für ostasiatische Schriftarten hinzufügen

Öffnen und bearbeiten Sie den Inhalt der Pfaddatei /Writer/Word2007/Base.php , wahrscheinlich in Zeile 349 (die Anzahl der Zeilen kann sich mit der Version ändern) wird wahrscheinlich in der Funktion _writeTextStyle hinzugefügt:

$objWriter->writeAttribute(‘w:eastAsia’, $font)

Mein geändertes Fragment sieht beispielsweise im Grunde wie folgt aus:

Font  if($font != ‘Arial’) {
$objWriter->startElement(‘w:rFonts’);
$objWriter->writeAttribute(‘w:eastAsia’, $font);// 添加这行
$objWriter->writeAttribute(‘w:ascii’, $font);
$objWriter->writeAttribute(‘w:hAnsi’, $font);
$objWriter->writeAttribute(‘w:cs’, $font);
$objWriter->endElement();
}

2. Lösen Sie das Problem der verstümmelten chinesischen Zeichen (Diese Lösung ist nützlich für die GBK-Codierung, nicht anwendbar auf UTF-8)

Bearbeiten Sie PHPWord/Template.php

Suchen Sie den Code $replace = utf8_encode($replace);, löschen Sie diese Codezeile oder kommentieren Sie sie aus, fügen Sie $ hinzu replace = iconv( 'gbk','utf -8′, $replace); beispielsweise wird der Code wie folgt geändert:

if(!is_array($replace)) {
//$replace = utf8_encode($replace);     
 $replace =iconv(‘gbk’, ‘utf-8′, $replace);
// 注释掉上面行后添加这行
}

Die Aufrufmethode lautet wie folgt:

$document->setValue(‘Template’, iconv(‘utf-8′, ‘GB2312//IGNORE’, ‘中文’));

Der obige Code löst hauptsächlich das Problem von Vorlagen,

Das gleiche Prinzip unten löst das Problem des Hinzufügens von Text zu Abschnitt,

Finden Sie den Code $givenText = utf8_encode($text); in PHPWord/Section.php,

Löschen oder kommentieren Sie diese Codezeile aus, Fügen Sie beispielsweise $givenText = iconv('gbk', 'utf-8′, $text); hinzu. Der Code lautet wie folgt:

public function addText($text, $styleFont = null, $styleParagraph = null) {
//$givenText = utf8_encode($text);   
 $givenText = iconv(‘gbk’, ‘utf-8′, $text);
// 注释掉上面行后添加这行
}

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem mit verstümmelten PHP-Worten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn