So entfernen Sie PHP-BOM: 1. Suchen Sie das PHP-Stammverzeichnis. 2. Platzieren Sie die „function checkBOM($filename){...}“ und andere Codes im Stammverzeichnis und führen Sie sie über den Browser aus, um darauf zuzugreifen.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.4, Dell G3-Computer.
Wie entferne ich PHP-Bom?
Einfache Möglichkeit, BOM mit PHP zu entfernen
/* +------------------------------------------------------------------------------------------- + Title : 去掉BOM头方法 + Author : hello_sgw + Version : V1.0.0.1 + Initial-Time : 2017-08-12 15:18 + Last-time : 2017-08-12 16:01 + Desc : +------------------------------------------------------------------------------------------- */
Als ich die Schnittstelle aufrief, wurden bei der Ausgabe eines Datensatzes immer wieder Fehler angezeigt, da ich die von der anderen Partei bereitgestellte Methode verwendete von der anderen Partei könnte Codierungsprobleme enthalten (mit Stücklistenkopf), daher habe ich online nach einer Methode gesucht, um Stücklisten zu erkennen und diese zu entfernen und eine neue Datei neu zu generieren. Nach der Verwendung können die Daten normal angezeigt werden.
Was ist ein Stücklistenkopf?
BOM – Byte Order Mark, der chinesische Name wird als „Byte Order Mark“ übersetzt. In einer utf-8-codierten Datei befindet sich die Stückliste im Header der Datei und belegt dies Die Datei gehört zur UTF-8-Kodierung.
Es gibt viele Softwareprogramme, die den BOM-Header erkennen können, aber es gibt immer noch einige, die den BOM-Header nicht erkennen können. Aus diesem Grund tritt ein Fehler auf nach Bearbeitung der UTF-8-Kodierung mit Notepad.
Lösung:
# 这里代码为PHP方式去除当前目录及字目录所有文件BOM信息,只要将此代码文件放到根目录下,然后浏览器运行访问就可以了 <?php if (isset($_GET['dir'])) { //设置文件目录 $basedir = $_GET['dir']; } else { $basedir = '.'; } $auto = 1; checkdir($basedir); function checkdir($basedir) { if ($dh = opendir($basedir)) { while (($file = readdir($dh)) !== false) { if ($file != '.' && $file != '..') { if (!is_dir($basedir . "/" . $file)) { echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . " <br>"; } else { $dirname = $basedir . "/" . $file; checkdir($dirname); } } } closedir($dh); } } function checkBOM($filename) { global $auto; $contents = file_get_contents($filename); $charset[1] = substr($contents, 0, 1); $charset[2] = substr($contents, 1, 1); $charset[3] = substr($contents, 2, 1); if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { if ($auto == 1) { $rest = substr($contents, 3); rewrite($filename, $rest); return ("<font color='red'>BOM found, automatically removed.</font>"); } else { return ("<font color='red'>BOM found.</font>"); } } else return ("BOM Not Found."); } function rewrite($filename, $data) { $filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); }
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonSo entfernen Sie PHP-Bom. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!