funcțiile PHP

Deși există multe limbi în care fiecare caracter dorit poate fi reprezentat de unu-la-unu de cartografiere la o valoare de 8 biți, există, de asemenea, mai multe limbi, care necesită mai multe caractere pentru comunicarea în scris, care nu poate fi conținută într-un singur octet. Multi-byte codificare caracter a fost proiectat pentru a lucra cu mai mult de 256 de caractere în codificarea corectă bit cu bit.

Când controlați linii (tăiere, rupere, conexiune, etc.). codificat într-o codificare multioctet, trebuie să folosiți funcții speciale deoarece doi sau mai mulți octeți consecutivi pot reprezenta un singur caracter (individual), în astfel de scheme de codare. În caz contrar, dacă utilizați funcția șir de un singur octet la liniile create de caractere multi-byte, funcția nu va fi capabil să detecteze începutul sau la sfârșitul caracterelor multi-byte.

mbstring oferă aceste funcții multibyte șir specifice care vă ajută să se ocupe de codificare multioctet în PHP, care se presupune a fi utilizat cu un singur (individual) octeți de codificare. În plus față de aceasta, mbstring se ocupă de conversia de codare de caractere între perechile de codificare.

mbstring este, de asemenea, proiectat să se ocupe de codare bazată pe UTF-8 și UCS-2 și altele (a se vedea mai jos), ca mbstring a fost inițial conceput pentru a fi utilizat în japoneză pagini web.

Caracter Cerințe Encoding PHP4

caractere pe un singur octet sunt în intervalul de 00h-7Fh. care este compatibil cu ASCII

Codificare Multi-byte - este gama 00h-7Fh

Iată câteva exemple de codificare caracter intern, care funcționează și nu funcționează cu PHP.

codificarea caracterelor nu este de lucru cu PHP, pot fi convertite folosind conversie HTTP-intrare / mbstring ieșirea modulului.

Notă: SJIS nu trebuie utilizat pentru codarea internă decât dacă cititorul nu este familiarizat cu problemele suficient de bine interpretor de lucru / compilator și codificare a caracterelor.

Notă: Dacă utilizați o bază de date cu PHP, este recomandat să utilizați un singur set de caractere pentru baza de date cât și pentru codarea internă / INTRA pentru ușurința de utilizare și creșterea productivității.

Dacă utilizați PostgreSQL, acceptă codificarea caracterelor, care diferă de la backend-codificare. A se vedea. Detalii PostgreSQL în carte.

mbstring este un modul de extensie. Sunteți obligat să se conecteze Configure sale script-ul. A se vedea. Detaliile de instalare în secțiunea.

Următoarele opțiuni de configurare sunt legate de modulul mbstring:

--activați-mbstring. Acesta include funcții mbstring. Această opțiune este necesară pentru a utiliza mbstring-funcții.

--activați-mbstr-ENC-trans. Acesta include codare de caractere de conversie HTTP-input-mașini de conversie folosind mbstring. Dacă această funcție este activată, codarea de intrare HTTP caractere pot fi convertite automat în mbstring.internal_encoding.

simboluri de codare de conversie HTTP-I / O pot converti, de asemenea, datele binare. Utilizatorii sunt încurajați să controleze caracterul de conversie de codificare în cazul în care datele binare este utilizat pentru ieșire de intrare / HTTP.

În cazul în care enctype pentru HTML-forme set multipart / form-date. mbstring nu convertește codificarea caracterelor în post-date. Dacă este așa, șirul trebuie să fie convertit în codificarea caracterelor interne.

Nu există nici o modalitate de a controla HTTP de intrare a caracterelor de conversie script PHP. Dezactivarea de conversie HTTP de caractere de intrare pentru a face în php.ini.

Exemplul 1. Dezactivați HTTP conversie simbolurile de intrare în php.ini

In prezent modulul mbstring acceptă următoarea codificare a caracterelor. Codificare caractere poate fi specificat parametrul de codare mbstring funcții ale modulului.

Aici codificările susținută de această extensie, PHP:

Intrarea în php.ini. primind numele de codificare, și acceptă „auto“ și „pass“.
mbstring funcții care iau numele de codificare, să accepte și să „auto“.

Dacă „pass“ este setat, nici o conversie de codificare a caracterelor nu este realizată.

În cazul în care "auto" este setat, acesta este extins la "ASCII, JIS, UTF-8, EUC-JP, SJIS".

A se vedea. De asemenea, mb_detect_order ()

Notă: „codare de caractere acceptat“ nu înseamnă că funcționează codul de caracter ca intern.

php.ini instalare

Aici sunt valorile implicite care sunt instalate în php.ini

mbstring.internal_encoding definește o simboluri de codare interne implicite

mbstring.http_input determină codificarea caracterelor implicită a HTTP-intrare

mbstring.http_output definește codarea implicită de ieșire HTTP caractere

mbstring.detect_order definește procedura pentru determinarea codificarea caracterelor implicite. A se vedea. De asemenea, mb_detect_order ()

mbstring.substitute_character determină simboluri pentru a înlocui codificările de caractere incorecte

Web-browsere sunt încurajați să utilizeze aceeași codificare în momentul depunerii formularului. Dar browserele nu pot folosi aceeași codificare de caractere. A se vedea. Funcția mb_http_input () pentru a determina codificarea browser-ului.

Dacă enctype este setat multipart valoare / formular-date în HTML-forme, mbstring nu convertește codificarea caracterelor în post-date. Utilizatorul este obligat să facă acest lucru în scenariu, în cazul în care este nevoie de conversie.

Simultan browsere îngrămădite suficient pentru a determina codificarea caracterelor în HTML. charset este mai bine pentru a instala în HTTP-antet / antet. Default_charset schimba în conformitate cu codificarea caracterelor.

Exemplul 4. Plantele php.ini

Pentru a stoca simbolul poate fi utilizat până la 6 octeți.

caracter multi-octet este de obicei de două ori mai mare ca un singur octet. caractere mai late sunt numite „zen-Kaku“ - ceea ce înseamnă „lățime completă“, mai restrâns numit „Han-Kaku“ - însemnând „jumătate de lățime“. „Zen-Kaku“ au de obicei o lățime fixă.

Unele codificări definesc schimbare de secvență (de evacuare) pentru intrare / ieșire în / din liniile de mai mulți octeți.

ISO-2022-JP este necesar pentru a fi utilizat pentru SMTP / NNTP.

"I-mode" web-site-ul care urmează să fie utilizat pentru a SJIS.

Informații despre simbolurile japoneze / coreene / Chineză