Php, hogyan kell eltávolítani bom wordpress
Az egyik probléma az UTF-8 kódolást - label BOM. Ez a címke szükséges elválasztani UTF mások. Encodings, de abban az esetben, UTF-8, akkor sok problémát okozhat, ezért jobb elhagyni a kódot BOM. Hogyan kell csinálni?

Törlés BOM Notepad ++

Törlés BOM PHP segítségével
Ha sok fájl, lapáttal őket Notepad ++ sokáig. Egyszerűen használja a php-script rekurzív feldolgozás mappák és fájlok eltávolítására a BOM védjegy. Azt felosztotta három funkciót:
1. file_has_boom funkció ($ filename) - ellenőrzi BOM védjegy a fájl $ filename.
funkció file_has_bom ($ fájlnév) $ fh = fopen ($ fájlnév, 'R');
if ($ fh === false) return false;
$ Str = fread ($ fh, 3);
fclose ($ fh);
return ($ str == csomag ( 'CCC', 0xef, 0xbb, 0xbf));
>
Olvas az első 3 byte $ filename, és összehasonlítja azokat az érték a címke BOM. Ha van egy - TRUE értékkel tér vissza. egyébként - HAMIS.
2. file_remove_bom funkció ($ filename) - törli az első 3 bájt (a címke BOM) a fájlban.
funkció file_remove_bom ($ fájlnév) $ str = file_get_contents ($ filename);
if ($ str === false) return false;
$ Str = substr ($ str, 3);
visszaút file_put_contents ($ filename, $ str);
>
Ha megnyitja vagy felülírni nem sikerült, a függvény visszatérési HAMIS. egyébként &mdah; A több rögzített bájt (nem igaz).
3. Funkció dir_remove_bom ($ dir) - ami a rekurzív feldolgozás mappák és fájlok, ellenőrizze a fájlokat címkék BOM és annak eltávolítását tőlük.
funkció dir_remove_bom ($ dir) $ dh = opendir ($ dir);
if ($ dh === false) die ($ dir.”- ERROR DIR„);
while (($ file = readdir ($ dh)) == false!) if ($ file == vagy $ file == '..' '') is;
$ Filename = $ dir. '/'. $ Fájl;
if (is_dir ($ filename)) dir_remove_bom ($ filename);
> ElseIf (is_file ($ filename)) if (file_has_bom ($ filename)! == false) echo $ filename ". -”. ((File_remove_bom ($ filename)! == false). "REMOVE BOM”. 'hibafájlba„). '
„
>
>
>
closedir ($ dh);
>
Megjegyzés: Ez a funkció megjeleníti a fájlok listáját, hogy már a jelölés BOM, és az eredmény az erőfeszítéseit, hogy távolítsa el.
Ott lehet használni, és glob () függvényt. de megtudtam, csak amikor elkezdtem foglalkozni, hogyan kell törölni egy fájlt a php - Alas.
Eltávolítása BOM a WordPress fájlokat
Mit WordPress? Az a tény, hogy a WordPress UTF-8 kódolású, és azt javasolta, php-script írta neki.
Az interneten, van egy döntés a zsűri Belotitskogo. de ez csak akkor találja meg a problémát fájlokat, és nem távolítja el a címkét BOM (ezt kézzel kell elvégezni, ugyanazt a Notepad ++).
Tól pluses érdemes megjegyezni korlátozás - a szűrők csak .php fájlokat, hogy igaza van, és felgyorsítja a folyamatot. Az én határozatban nem, de hozzátette, nem nehéz:
if (strstr ($ filename, '.php') === false) folytatódik;
Add hozzá ezt a kódot, mielőtt elérhetőségének ellenőrzése védjegy a BOM fájlt, azaz a sorban ..:
if (file_has_bom ($ filename)! == false)
Nos t.-k. a nagy részét a probléma a sablonok, elegendő, hogy ellenőrizze a mappát ./wp-content/themes/ - a php-script kell elhelyezni a gyökérkönyvtárban a blog és a hívás feldolgozásához lesznek:
Ezen felül, akkor adja meg a helyét maga a téma, ami tovább szűkíti a számos feldolgozott fájlokat.
BOM és eredmények
Megoldást a problémára sok. A jövő UTF-kódolást! De míg vannak nehézségek az UTF azt is felismerték, hogy a kódolási Windows 1251 (ANSI) nagyon hasonlít előnyös.
Ui Nem vagyok felelős a következményeit használata a fenti php-script, hogy távolítsa el a BOM.
Köszönöm, bár mindkettő ment PhpStorm már elfelejtette, amit a BOM. És mi opendir már feledésbe merült után megjelenő PHP SPL és a fájl iterátoroké.
A PHP SPL, nem hiszem, hogy a tojást a profilt néz ki, mint valami mást. ÉN használ, amit ismerős volt, de egyetértek - meg kell tartani újítások. Ha van egy vágy :-)
Specialist web # 8209; a tervező, fejlesztő, optimalizáló, szövegíró, blogger, és csak egy jó ember.