Domain, tárhely vagy külön szerver kell a honlapodnak?

Barátságosak, egyszerűek, gyorsak vagyunk, és szívesen segítünk :)

Domain, tárhely: Gyümölcstárhely

VPS, dedikált szerver: Gyümölcsszerver

UTF-8 fájlok és a BOM

A probléma leírása

A Jegyzettömb (Notepad) programot használtam egy PHP fájl szerkesztésére és a tárhelyre visszamásolás után valami furcsa dolog történt. (pl: Cannot modify header information PHP hibát kapok)

A probléma oka

Bizonyos szövegszerkesztő programok -, mint például a Jegyzettömb - automatikusan tesznek két speciális, szövegszerkesztőben nem látható jelölő karaktert (ezt hívják BOM-nak) az UTF-8 kódolással mentett szövegfájlok elejére. Ezek a karakterek megzavarják a PHP-t futtató értelmezőt és bizonyos esetekben hibás működést okozhatnak.

Sajnos csomó program magától használja a BOM-ot (Byte Order Mark), rákérdezés vagy egyéb erre utaló jel nélkül berakja a fájl elejére, amit sok szerver nem kedvel. Nálunk számtalan hiba adódott abból, hogy általános szövegszerkesztő programokkal (Windows-on) belenyúlt valaki a fájl tartalmába, és nincs lehetőség kiválasztani a mentéskor olyan verziót, hogy BOM ne kerüljön a fájlba.

Hibajelenség például a már említett üzenet, vagy felesleges karakterek a kész HTML oldalban. Pl. Include-ok a beidézett fájlok elejéről bemásolhatják a beidézet PHP fájl legelején szereplő BOM-ot egy másik fájl tetszőleges helyére, így problémák elég széles skálán jelentkezhetnek. Nálunk sok felesleges sortörést vettünk észre, amik számos esetben erre a felesleges BOM hibára voltak visszavezethetőek.

Megoldások

  • A legegyszerűbb az, hogy a PHP kódot tartalmazó fájlokat másik szövegszerkesztő programmal kell szerkeszteni és azokban elmenteni (pl. Notepad++ - http://notepad-plus-plus.org/ ). Ezek után helyesen fognak működni a feltöltést követően.
  • A másik megoldás, ami csak akkor működik, ha nem tartalmaz ékezeteket az adott fájl (pl. egy konfigurációs fájl valamilyen PHP-s CMS-hez/blogmotorhoz) az, hogy ANSI kódolással kell elmenteni a Jegyzettömbben.
  • Sok hexa editor meg tudja mutatni a fájlok tartalmát, a leggyakoribb szövegszerkesztők viszont elrejtik a BOM-ot. Mi egy végső megoldást találtunk: végigmenni az összes fájlon és ellenőrizni a BOM-ok jelenlétét. Erre egész jól használható eszköz ez a minimális programocska: http://www.tothgabor.hu/programozas/utf-8-bom-byte-order-mark-remover/

Kapcsolódó bejegyzések

Hibaüzenetek

Webtárhely


  • Hol vagyok, mi ez az oldal? Ez a wiki a Gyümölcstárhely tárhely szolgáltató tárhely tudásbázisa, ügyfeleinek szóló használati útmutatója, de tartalmaz egy csomó nem Gyümölcstárhely specifikus webtárhellyel, email használattal, domain regisztrálással, honlap üzemeltetéssel és fejlesztéssel kapcsolatos információt is.
  • Beleírhatok? Igen, bárki, aki regisztrál, készíthet új oldalakat és frissítheti a jelenlegieket, amelyeket moderáció után mindenki olvashat. Ha szeretnél hozzátenni a tudáshoz, érdemes átfutnod a tennivalók listáját, a formázási tudnivalókat és az irányelveket.

Észrevétel, javaslat, kérdés