Heim > Backend-Entwicklung > PHP-Problem > Was tun, wenn Apache PHP verstümmelt ist?

Was tun, wenn Apache PHP verstümmelt ist?

藏色散人
Freigeben: 2023-03-02 06:06:02
Original
2465 Leute haben es durchsucht

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.

Was tun, wenn Apache PHP verstümmelt ist?

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
Nach dem Login kopieren

Und das Hilfedokument, das ich heruntergeladen habe. Die HTML-Version von Electronic Data erfordert GB2312-Einstellungen

E:\OpenStudy\www\Electronic Books
Nach dem Login kopieren

Zu Beginn der Serverkonfiguration verwendet PHP die von allen empfohlene UTF-8-Kodierungsmethode

[php.ini]
default_charset = "UTF-8"
Nach dem Login kopieren

Server-Stammverzeichnis:

E:\OpenStudy\www
Nach dem Login kopieren

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
Nach dem Login kopieren

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 -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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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 nicht mit /home/user/public_html überein, aber Zum Beispiel:

<Directory /usr/local/httpd/htdocs> 
  Options Indexes FollowSymLinks 
</Directory>
Nach dem Login kopieren

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 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"
Nach dem Login kopieren

2. Ändern Sie die Sprache des Home-Verzeichnisses in

AddDefaultCharset  utf-8
Nach dem Login kopieren

Ändern Sie die Kodierungsmethode des erforderlichen Ordners [E:/OpenStudy/www/Electronic Books]

<Directory "E:/OpenStudy/www/Electronic Books">
  AddDefaultCharset gb2312
</Directory>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage