Weboldal fordítás xml, XSLT és utf8
Miért XML és XSLT?
Volt egyszer egy helyszínen. Semleges samopisanny oldalon. Míg kicsi volt, egy kicsit én és rosszul látogatott, a különleges igényeit nem változott semmit. Büszkén powered by cp1251, senki megérintett. De egy ponton, az információ, hogy felhalmozódnak, mint a por a monitor mögött, hirtelen elkezdett több kell szerkezete és megfelelő képviseletét. Szükséges volt, hogy változtatni az elavult motor drámaian, pontosabban, a döntetlen mintákat.
Turkált a ládákat a memória és a poizuchat Inet, felvázoltam a kétféle sablonrendszer - PHP-függő és az XSLT.
PHP-függő sablonozó - a program a manipuláció minták tetszőleges méretű, ennek eredményeként, amelyet úgy kapunk egy működő PHP-script a kívánt funkciókat. A legfényesebb képviselője sablonozó természetesen, Smarty. Ilyen sablonozó tartalmaz egy nagyon nagy sebességű, rugalmas szintaktikai és teljes függését a php.
XSLT-sablonok - egy XML-fájlok, amelyek feldolgozásának szabályait az eredeti XML-fájlt. Ennek eredményeként, a kezelés pedig egy szöveges dokumentum bármilyen formában, bár a HTML, bár ugyanazt a php. Feldolgozás ilyen minták már egy külön modul ugyanakkor töltött sok erőforrást.
Annak ellenére azonban, hogy viszonylag nagy erőforrás-felhasználás, a használata XSLT segítségével megszabadulni a PHP-alapú és világosan elkülönül a sablon adatbázist. Ezen kívül ,, XML és XSLT és standardizált, és a támogató végrehajtása túl php. Azaz, ha kialakult a sablont lehet használni bárhol és bármikor.
Egy másik fontos előnye, XSLT annak teljes intolerancia helyesírási és strukturális hibákat. Azaz, ha a dolgozó mintát, és működni fog, függetlenül attól, hogy a bemeneti adatokat. Ha a sablon tartalmaz semmilyen hibát, akkor tudni fogja, hogy róla azonnal.
Vzesiv a „profik” és a „hátránya”, érveltem, mint ez - XSLT, egy kényelmes, jól dokumentált minta nyelv, amely támogatja a legtöbb modern böngésző, és lehetővé teszi, hogy megjelenítse az adatfeldolgozást egy teljesen új szintre.
Miután egy sor kísérletet a helyi gépen, az a döntés született, hogy használja a XSLT egyszer és mindenkorra.
Miért van az UTF-8?
Eredetileg a helyszínen működik a Windows-1251, és változtatni a kódolás nem akartam. És miért változtatni valamit, és ha igen, mert működik.
A helyi vizsgálatok XML nem jelent problémát a windows-1251 nem volt megfigyelhető. De csontok nem sokáig váratott magára. Amikor portolása XML php vázolják bajok.
Bár a kód volt, hogy nem volt semmi probléma:
Kitalálni, hogy mi nem tetszett 0xC7 0xE0 0xE3 0xEE. Meg kellett végeznie egy sor kísérletet. Az eredmények azt mutatták, egy egyszerű, de nagyon fontos dolog. A kódolás során megadott dokumentum objektum nem az eredeti, ahogy naivan gondoltam, majd a kapott. Egészen addig, amíg a sor „Cím” és „Tartalom” volt windows-1251 (amikor loboy kódolás DOMDocument), nem volt jó. De szükség volt lefordítani őket UTF-8, mert dolgozott hurrá.
Miután foglalkozott a kódoló létrehozni, azt kotorászott összes dokumentáció a DOMDocument. abban a reményben, hogy valahogy megadhatja a forrás kódolást. A végén, semmi új nem található.
A következtetés, hogy kellett tennem, hogy kiábrándító - Ha azt akarjuk, hogy működjön együtt DOMDOcument. és dolgozni UTF-8. By the way, SimpleXML sem kivétel, a diéta kell megadnia csak UTF-8.
Ezért az a kérdés, hogy a kódoló oldalon értékben egyértelműen - csak UTF-8.
Mi lefordítani a helyszínen, UTF-8
Sokan azt mondják: „?! ... 50 fájl - juh tüsszentés”, mondják, nagy oldalak állnak, több ezer kép. Sőt, 50 fájl - ez húsz perc munka. De. Azt belopakodott a gondolat, hogy ez a fellépés lehet néhány automatizált nekem.
Googling az interneten, találtam, hogy a programok, amelyek érdekeltek, a ki csak két - az egyik a konzol, és a második a .NET. És először nem támogatja az UTF-8, és a többi csak nem indul el - rosszindulatú freymvok nem lett beállítva.
Kétségbeesés és nem hajlandó, hogy vegyenek részt overstoring az eljárás ismételt véletlenszerűen kellett tennie a kezét, és a Visual Basic írni a kívánt program maga. Az eredmény egy olyan eszköz, úgynevezett recoder.
Fegyveres recoder. Fordítottam a szükséges fájlokat a windows-1251 UTF-8 egy pár másodpercig. Úgy tűnt, hogy a cél eléréséig. Találtam viszont még egy mégis. - recoder dolgozott pontosan 100%, és amikor a fájlok mentését adunk aláírás UTF-8, az úgynevezett BOM.
Az aláírás a BOM - ezek három különleges bájt, hogy jön a fájl elején, és jeleznie kell, hogy a fájl maga is tartalmaz UTF-8. De a probléma az, hogy a BOM nem kötelező, és lehet, hogy nem lesz. Ebben az esetben a PHP nem tudom, tudom, hogy milyen állat, és hogyan kell használni. Ezért én projektem rossz állapotban volt - ha bármilyen fájlt mászik senkinek sem kell az aláírás UTF-8.
A probléma megoldása érdekében a BOM, kellett nekigyürkőzünk újra és írj egy másik típus. Így született meg a bom-eltávolító programot. Talán az ilyen programok több mint átalakítók, de mint mondják, séta így járni!
És most, az őrlés után bom-eltávolító. a helyén volt, hivatalosan át UTF-8. Hogy végre búcsút a windows-1251, szükséges volt, hogy egyszerűen változtatni a területi és a kódolás.
Beállításai UTF-8 kiderült például: