Cum se face php în import

Mulți oameni, care lucrează cu PHP și MySQL, au întâmpinat problema exportului / importului de date într-un fișier CSV, de înțeles pentru Excel. Funcțiile fputcsv () și fgetcsv () nu funcționează așa cum ne-ar plăcea. Iar când deschidem fișierul CSV rezultat în Excel, vedem jumătate din linie într-o celulă, iar cealaltă parte a liniei în cel de-al doilea. Uneori, astfel de erori în interpretarea datelor de către Excel sunt asociate cu limitarea cantității de date dintr-o singură celulă - 50.000 de caractere. dacă sunt mai multe, datele rămase sunt afișate pe o linie nouă.







Descrierea formatului CSV pentru Excel

Microsoft Excel înțelege fișierele CSV ca celule divizate separate printr-un caracter punct și virgulă (;), iar linia se termină cu un caracter de linie nouă. Dacă celula însăși conține semicolon (;) sau o linie nouă, atunci această celulă este înconjurată de un ghilimele (").

De exemplu.
yacheyka1; "celula2 cu un simbol sau în mai multe rânduri"; yacheyka3;

Dacă în celula însăși există citate ("), atunci ele sunt dublate.

De exemplu.
Acestea sunt "citate; => Acestea sunt citate;

Ce înseamnă exportul standard în CSV în PHP

fputcsv funcția ($ csv_file. $ array, $ delimitator =“, '$ împrejmuire ='„ ') exportă $ matrice matrice la fișierul $ csv_file. În același timp, ca separator implicit folosind o virgulă ($ delimitator =', ') precum și simbolul de încadrare - ghilimelele ($ enclosure = „„“).

Se pare că pentru a scrie date în format CSV pentru MS Excel, trebuie doar să setați $ delimiter = ';' și să lăsați o corespondență egală cu ghilimele ("), dar în realitate există erori în interpretarea fișierului de către Excel.







Iată captura: funcția fputcsv ca caracter evadare este coloana vertebrală (\). Și acest lucru nu poate fi schimbat. Asta este, dacă scrieți tipul de date Lala \ „Lala, apoi intrarea în simbol nu citează dublu fișier, deoarece este protejat de o bară oblică inversă, iar apoi Excel consideră că celula sa limită, deși nu este așa.

Ieșire. Utilizați funcția de export în CSV, iar textul va fi dat.

Ce înseamnă funcția standard de import în CSV în PHP

Funcția PHP import din fgetcsv CSV-atașamentului ($ csv_file, $ lungime = 0, $ delimitator =“, '$ împrejmuire ='„“, $ escape = '\\') importurile din șir CSV-fișier $ csv_file de lungime maximă $ lungimea, în cazul în care a = 0, atunci acesta poate fi orice separator implicit este o virgulă (,) caracterul ca un simbol de încadrare. - semne ( „), și caracterul de evacuare - o bară oblică inversă (\).

Începând cu versiunea 5.3 din PHP, caracterul de evacuare din această funcție poate fi setat.

Pentru a exporta date folosind formatul PHP în format CSV pentru Excel, este suficient să setați ghilimele ca un caracter de ecranare. Aceasta este, $ delimiter = ';', $ enclosure = '' ', $ escape =' ''.

Funcții sumare pentru lucrul cu CSV

Cum se deschide fișierul Excel cu codare UTF-8

Pentru a deschide în mod normal fișierele CSV în codare UTF-8, nu este suficient doar să notați datele la această codificare. Pentru a "spune" Excel pentru a utiliza Unicode, este acceptat să introduceți o secvență de 3 octeți în începutul fișierului: EF BB BF. Aceasta nu este o soluție oficială, este doar o caracteristică a deschiderii fișierelor Excel în CSV.

Pentru claritate, aici este o bucată de cod pentru PHP:

Apoi, exportim datele în codificarea UTF-8 folosind funcția my_fputcsv (). Excel deschide perfect astfel de fișiere.

Important! În ciuda faptului că fișierul se deschide în codificarea utf-8, Excel o va salva încă în codarea windows-1251.

Cum se face php în import







Articole similare

Trimiteți-le prietenilor: