So lösen Sie das Problem der Zabbix-Überwachung, das aufgrund von PHP-Problemen zu verstümmelten chinesischen Zeichen in der grafischen Benutzeroberfläche führt

So lösen Sie das Problem der Zabbix-Überwachung, das aufgrund von PHP-Problemen zu verstümmelten chinesischen Zeichen in der grafischen Benutzeroberfläche führt

Lösen Sie das Problem der verstümmelten chinesischen Zeichen in der grafischen Oberfläche des Zabbix-Überwachungssystems, das durch das Hinzufügen der Option -enable-gd-jis-conv beim Kompilieren von PHP verursacht wird

Phänomen:

PHP-Kompilierungsparameter:

veranschaulichen:

Wenn PHP mit der aktivierten Option --enable-gd-jis-conv kompiliert wird, werden Nicht-ASCII-Zeichen (wie chinesische Schriftzeichen, Pinyin, Griechisch und Pfeile) als EUC-JP-Zeichen (in phpinfo „JIS-codierte Schriftarten“ genannt) behandelt, was zu verstümmelten Zeichen führt (da westliche Schriftarten keine Kana- oder chinesischen Schriftzeichen haben, werden sie normalerweise als Kästchen angezeigt). Die Funktion imagettftext() wird verwendet, um Zeichen in ein Bild zu schreiben. Dieses Problem wird durch diese Funktion verursacht.

Ich habe mehrere unvollständige Tutorials im Internet überprüft. Das Folgende ist mein Produktionspraxisbetrieb in der Version zabbix3.2, Version php7.2

Methode 1:

Kompilieren und installieren Sie PHP neu und deaktivieren Sie dabei die Option -enable-gd-jis-conv. Diese Methode ist teurer.

Methode 2:

Da die Produktionsumgebung PHP schon lange verwendet, weiß ich nicht, ob es Anwendungen gibt, die es verwenden. Daher wage ich es nicht, es einfach neu zu kompilieren. Daher löse ich es gemäß Methode 2

Erster Schritt:

Ändern Sie die Datei graphs.inc.php in /etc/nginx/html/zabbix/include (vorher sichern).

cp graphs.inc.php graphs.inc.php.bak

vim graphs.inc.php #在末尾添加如下代碼

Funktion to_entities($string){
 $len = strlen($string);
 $buf = "";
 für($i = 0; $i < $len; $i++){
  wenn (ord($string[$i]) <= 127){
   $buf .= $string[$i];
  } sonst wenn (ord ($string[$i]) < 192) {
   //unerwartetes 2., 3. oder 4. Byte
   $buf .= "?";
  } sonst wenn (ord ($string[$i]) < 224) {
   //erstes Byte der 2-Byte-Sequenz
   $buf .= sprintf("&#%d;",
    ((ord($string[$i + 0]) & 31) << 6) +
    (ord($string[$i + 1]) & 63)
   );
   $i += 1;
  } sonst wenn (ord ($string[$i]) < 240) {
   //erstes Byte der 3-Byte-Sequenz
   $buf .= sprintf("&#%d;",
    ((ord($string[$i + 0]) & 15) << 12) +
    ((ord($string[$i + 1]) & 63) << 6) +
    (ord($string[$i + 2]) & 63)
   );
   $i += 2;
  } anders {
   //erstes Byte der 4-Byte-Sequenz
   $buf .= sprintf("&#%d;",
    ((ord($string[$i + 0]) & 7) << 18) +
    ((ord($string[$i + 1]) & 63) << 12) +
    ((ord($string[$i + 2]) & 63) << 6) +
    (ord($string[$i + 3]) & 63)
   );
   $i += 3;
  }
 }
 $buf zurückgeben;
}

Schritt 2:

Suchen Sie in der Datei nach der Funktion imagettftext() (insgesamt drei Stellen).

Ändern Sie den letzten Parameter $string in to_entities($string) . Alle drei Stellen müssen geändert werden. Kein Neustart erforderlich, aktualisieren Sie einfach, um das Problem zu lösen.

Zusammenfassen

Oben ist die Methode, die ich Ihnen vorgestellt habe, um das Problem verstümmelter chinesischer Schriftzeichen in der grafischen Benutzeroberfläche der Zabbix-Überwachung aufgrund von PHP-Problemen zu lösen. Ich hoffe, sie wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Lösung für das Problem mit verstümmelten chinesischen Dateinamen in PHP fopen
  • PHP liest Dateien und analysiert die Methode zur Lösung des chinesischen verstümmelten UTF-8
  • Lösung für die verstümmelte Textausgabe von PHP
  • Beispiellösung zum Schreiben verstümmelter chinesischer Zeichen in MySQL in PHP
  • Lösung für PHP, das verstümmelten txt-Code schreibt
  • Lösen Sie das Problem, dass PHP verstümmelte Zeichen in die Datenbank schreibt
  • Lösung für verstümmelte Zeichen beim Senden von Push-Nachrichten in PHP WeChat
  • PHP löst das Problem der verstümmelten chinesischen Ausgabe

<<:  So erfassen Sie Ausnahmen in React

>>:  Optimieren Sie die Speichereffizienz von BLOB- und TEXT-Spalten in InnoDB-Tabellen

Artikel empfehlen

Javascript Frontend Optimierungscode

Inhaltsverzeichnis Optimierung der if-Beurteilung...

Eine benutzerfreundliche Alternative in Linux (Befehl fd)

Der Befehl fd bietet eine einfache und unkomplizi...

MySQL-Datenbank Shell import_table Datenimport

Inhaltsverzeichnis MySQL Shell import_table Daten...

So zeigen Sie JSON-Daten auf einer HTML-Seite an und formatieren sie

JSON-Daten werden auf der HTML-Seite angezeigt un...

CSS HACK für IE6/IE7/IE8/IE9/FF (Zusammenfassung)

Seit ich die offizielle Version von IE8.0 install...

Einige Parameterbeschreibungen von Texteingabefeldern im Webdesign

In Gästebüchern, Foren und anderen Orten werden i...

Neunundvierzig JavaScript-Tipps und Tricks

Inhaltsverzeichnis 1. Betrieb von js Integer 2. S...

Implementierung einer kreisförmigen CSS-Aushöhlung (Gutschein-Hintergrundbild)

In diesem Artikel werden hauptsächlich kreisförmi...

HTML-Tabellen-Tag-Tutorial (35): spaltenübergreifendes Attribut COLSPAN

In einer komplexen Tabellenstruktur erstrecken si...

Docker-Container: benutzerdefinierter Host-Netzwerkzugriffsvorgang

Durch Hinzufügen des Schlüsselworts extra_hosts i...

Spezifische Verwendung von useRef in React

Ich glaube, dass Leute, die Erfahrung mit React h...

Beispiel zum Festlegen der pseudostatischen WordPress-Eigenschaft in Nginx

Zitat aus Baidus Erklärung zu Pseudostatik: Pseud...