Heim > Artikel > Backend-Entwicklung > Was tun, wenn Apache PHP verstümmelt ist?
Die Lösung für verstümmelten Apache PHP-Code: Kommentieren Sie zuerst den Code in „php.ini“ aus, ändern Sie dann die Sprache des Home-Verzeichnisses in „AddDefaultCharset utf-8“ und ändern Sie dann die Codierungsmethode des erforderlichen Ordners. Schließlich starten Sie einfach Apache neu.
Lösung für PHP-Anzeige von verstümmeltem Code und Apache-internem Codierungsproblem
Codierungsproblem
Die Standardkodierung von PHP ist utf-8. Um das Meta-Tag des HTML-Codes nicht schreiben zu müssen, werden während des Tests keine verstümmelten Zeichen angezeigt
E:\OpenStudy\www\CSphp
Und das Hilfedokument, das ich heruntergeladen habe. Die HTML-Version von Electronic Data erfordert GB2312-Einstellungen
E:\OpenStudy\www\Electronic Books
Zu Beginn der Serverkonfiguration verwendet PHP die von allen empfohlene UTF-8-Kodierungsmethode
[php.ini] default_charset = "UTF-8"
Server-Stammverzeichnis:
E:\OpenStudy\www
Konsultierte zugehörige Informationen
AddDefaultCharset 指令 说 明 当应答内容是text/plain或text/html时,在HTTP应答头中加入的默认字符集 语 法 AddDefaultCharset On|Off|charset 默认值 AddDefaultCharset Off 作用域 server config, virtual host, directory, .htaccess 覆盖项 FileInfo 状 态 核心(C) 模 块 core
Nur wenn der Antwortinhalt text/plain oder text/html ist, fügt dieser Befehl den Standard hinzu Wert im Zeichensatz des HTTP-Antwortheaders. Theoretisch wird dadurch der über das e8e496c15ba93d81f6ea4fe5f55a2244-Tag im Dokumenttext angegebene Zeichensatz überschrieben, das tatsächliche Verhalten hängt jedoch normalerweise von den Browsereinstellungen des Benutzers ab. AddDefaultCharset Off deaktiviert diese Funktion. AddDefaultCharset On aktiviert den internen Standardzeichensatz von Apache, iso-8859-1. Sie können auch angeben, dass ein anderer Zeichensatz aus einem der von der IANA registrierten Zeichensatznamen verwendet werden soll. Beispiel:
AddDefaultCharset utf-8
AddDefaultCharset sollte nur in den folgenden Situationen verwendet werden: Alle Textressourcen verwenden denselben bestimmten Zeichensatz und es ist sehr mühsam, ihre Zeichensätze separat zu markieren. Ein Beispiel dafür ist das Hinzufügen von Zeichensatzparametern zu Ressourcen mit dynamischen Inhalten (z. B. ältere CGI-Skripte), was zu Cross-Site-Scripting-Angriffen führen kann, indem vom Benutzer bereitgestellte Daten in die Ausgabe einbezogen werden. Bitte beachten Sie jedoch: Eine bessere Lösung besteht darin, diese Skripte zu ändern oder zu löschen, da durch das Festlegen des Standardzeichensatzes die automatische Zeichensatzerkennungsfunktion des Browsers deaktiviert wird. Die
AddCharset 指令 说明 在给定的文件扩展名与特定的字符集之间建立映射 语法 AddCharset charset extension [extension] ... 作用域 server config, virtual host, directory, .htaccess 覆盖项 FileInfo 状态 基本(B) 模块 mod_mime
AddCharset-Direktive stellt eine Zuordnung zwischen einer bestimmten Dateierweiterung und einem bestimmten Zeichensatz her. charset ist der MIME-Zeichensatzparameter der Datei mit der Erweiterung „extension“. Diese Zuordnungsbeziehung wird zwangsweise zu allen vorhandenen Zuordnungsbeziehungen hinzugefügt und überschreibt alle vorhandenen Erweiterungszuordnungen.
AddLanguage ja .ja AddCharset EUC-JP .euc AddCharset ISO-2022-JP .jis AddCharset SHIFT_JIS .sjis
Mit der obigen Definition wird das Dokument xxxx.ja.jis als japanisches Dokument betrachtet, das den Zeichensatz ISO-2022-JP verwendet (dasselbe gilt für das Dokument xxxx.jis.ja). Zusätzlich zur Information des Clients über die Zeichensatzcodierung des Dokuments, damit es übersetzt und korrekt angezeigt werden kann, wird die AddCharset-Direktive auch für die Inhaltsverhandlung verwendet (Auswahl eines von mehreren Dokumenten, die basierend auf den Präferenzinformationen des Benutzers an den Benutzer zurückgegeben werden sollen). ).
<Directory> 指令 说 明 封装一组指令,使之仅对文件空间中的某个目录及其子目录生效 语 法 <Directory directory-path> ... </Directory> 作用域 server config, virtual host 状 态 核心(C) 模 块 core
7b799fe73e35dcfdc019b13f54de80e5 werden verwendet, um eine Reihe von Anweisungen zu kapseln, sodass sie nur für ein bestimmtes Verzeichnis und seine Unterverzeichnisse wirksam werden. Es kann jede Direktive verwendet werden, die im Bereich „Verzeichnis“ verwendet werden kann. Verzeichnispfad kann ein vollständiger Pfad zu einem Verzeichnis oder eine Platzhalterzeichenfolge sein, die eine Unix-Shell-Matching-Syntax enthält. In einer Platzhalterzeichenfolge entspricht „?“ einem beliebigen einzelnen Zeichen und „*“ einer beliebigen Zeichenfolge. Sie können auch „[]“ verwenden, um Zeichenbereiche festzulegen. Keines der oben genannten Platzhalterzeichen kann mit dem Zeichen „/“ übereinstimmen. Daher stimmt 1a828a2c01b891743bb0f98d72fd8b31 nicht mit /home/user/public_html überein, aber e5e6f80dfc15ee11f8b1e9860799ea20 Zum Beispiel:
<Directory /usr/local/httpd/htdocs> Options Indexes FollowSymLinks </Directory>
Seien Sie vorsichtig, wenn Sie die Verzeichnispfadparameter verwenden: Sie müssen mit dem Dateisystempfad übereinstimmen, den Apache für den Zugriff auf Dateien verwendet. Anweisungen, die einem bestimmten 5f8913368ddec78cdb28bd07a5cf25a6 zugewiesen sind, wirken sich nicht auf dieselbe Verzeichnisdatei aus, auf die ein anderer Pfad verweist, beispielsweise ein Pfad, der über einen anderen symbolischen Link generiert wurde.
Lösung
1. Kommentieren Sie den Code in php.ini aus
[php.ini] ;default_charset = "UTF-8"
2. Ändern Sie die Sprache des Home-Verzeichnisses in
AddDefaultCharset utf-8
Ändern Sie die Kodierungsmethode des erforderlichen Ordners [E:/OpenStudy/www/Electronic Books]
<Directory "E:/OpenStudy/www/Electronic Books"> AddDefaultCharset gb2312 </Directory>
Die Änderung ist abgeschlossen, starten Sie Apache neu und fertig
Weitere Informationen zu diesem Thema , besuchen Sie bitte diePHP chinesische Website!
Das obige ist der detaillierte Inhalt vonWas tun, wenn Apache PHP verstümmelt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!