Benutzer-Werkzeuge

Webseiten-Werkzeuge


kodierung_von_php-skripten

Kodierung von PHP-Skripten

Aktuell hat ein Skript, welches den soapmanager aufgerufen hat, nicht mehr funktioniert, weil die Kodierung in UTF8 (mit BOM) ausgeführt war.

Erst nach Konvertierung in UTF8 Ohne BOM (Byte order Mark) funktionierte das Skript wieder.

Abhilfe

unter Linux:

Eine elegante Lösung, um in einem Ordner alle PHP-Dateien (inkl. Unterordner) nach dem BOM zu durchsuchen und anschließend zu löschen, kann mittels der Bash erreicht werden.
find . -type f -iname „*.php“ -exec sed '1s/^\xEF\xBB\xBF' -i.bak {} \; -exec rm {}.bak \;

Möchte man nur die Dateien mit dem BOM aufspüren, kann dieser Einzeiler verwendet werden.
grep -rl $'\xEF\xBB\xBF'
Natürlich geht das auch mit VIM.
# vim utf8_with_bom.php
:set nobomb
:wq

mit PHP
Das BOM kann auch mit PHP5 entfernt werden.
Dadurch müssen die drei Bytes erkannt und gelöscht werden.
Code:
$str = file_get_contents('utf8_with_bom.php');
$bom = pack(„CCC“, 0xef, 0xbb, 0xbf);
if (0 == strncmp($str, $bom, 3)) {
echo „BOM detected - file is UTF-8\n“;
$str = substr($str, 3);

kodierung_von_php-skripten.txt · Zuletzt geändert: 2020/06/24 14:33 von 127.0.0.1