Hogyan lehet php importálni

Sokan, akik a PHP és a MySQL segítségével dolgoztak, az exportálás / importálás problémájával szembesültek az Excel-ben értelmezhető CSV fájlba. A fputcsv () és a fgetcsv () függvények nem működnek, ahogyan szeretnénk. És amikor megnyitjuk az eredményül kapott CSV fájlt az Excelben, akkor láthatjuk a vonal felét egy cellában, és a sor másik részét a másodikban. Néha az Excel értelmezésének ilyen hibái az egy adott cellában lévő adatok mennyiségének korlátozásával járnak - 50 000 karakter. ha még több van, akkor a fennmaradó adatok egy új sorban jelennek meg.

Az Excel Excel CSV formátumának leírása

A Microsoft Excel úgy értelmezi a CSV fájlokat, mint osztott cellákat, pontosvesszővel (;) karakterrel elválasztva, és a vonal újvonalas karakterrel fejeződik be. Ha a cella magában foglal pontosvesszővel (;) karaktereket vagy új sorozatot, akkor ezt a cellát idézőjel (") veszi körül.

Például.
yacheyka1; "cell2 egy szimbólummal, vagy több sorban"; yacheyka3;

Ha maga a cellában vannak idézőjelek ("), akkor megduplázódnak.

Például.
Ezek "idézőjelek; => ezek idézőjelek;

Mit jelent a standard exportfunkció a CSV-ben a PHP-ben?

fputcsv funkció ($ csv_file. $ array, $ delimiter =” '$ burkolat ='„ ') exportálja az array $ array a fájl $ csv_file. Ugyanakkor az alapértelmezett elválasztó használatával vesszőt ($ delimiter =' ') , és a zároló karakterként - idézőjelek ($ enclosure = '"").

Úgy tűnik, hogy az adatok MS Excel formátumú CSV formátumba történő írásához csak a $ delimiter = ';' értéket kell beállítania, és a burkolat egyenlőnek kell lennie az idézőjelekkel ("), de a valóságban hibák vannak a fájl értelmezésében az Excel-ben.

Itt van a fogás: a fputcsv függvény mint escape karakter a backslash (\). És ez nem változtatható meg. Azaz, ha írsz az adattípus Lala \ „Lala, majd a bejegyzést a szimbólum idézi nem dupla fájl mert árnyékolja backslash, majd az Excel tekinti határ sejt, bár ez nem így van.

Kilépés. Használja az exportfunkciót a CSV-ben, majd annak szövegét kapja meg.

Mit jelent a standard importfunkció a CSV-ben a PHP-ben?

A PHP függvény import CSV-hevederes fgetcsv ($ csv_file, $ hossz = 0, $ delimiter =” '$ burkolat ='„”, $ menekülési = '\\') származó import CSV-fájl $ csv_file sor maximális hossza $ hosszát, ha a = 0, akkor lehet bármilyen alapértelmezett elválasztó vesszőt (,) karaktert keretező szimbólum -. pont ( „), és az escape karakter - egy backslash (\).

A PHP 5.3-as verziótól kezdődően beállítható a menekülési karakter ebben a funkcióban.

Az adatok exportálásához PHP-t CSV formátumba az Excel-be, elegendő az idézőjeleket árnyékoló karakterként megadni. Vagyis $ delimiter = ';', $ enclosure = '' ', $ escape =' ''.

Összefoglaló funkciók a CSV használatához

Az Excel fájl megnyitása az UTF-8 kódolással

Az Excel általában megnyitja a CSV fájlokat az UTF-8 kódolásban, nem elég csak ahhoz, hogy az adatokat kódolni lehessen. Az Unicode használatához "Excel" -nek "el kell mondania", 3 bájtos sorozatot helyez el a fájl elejére: EF BB BF. Ez nem hivatalos megoldás, hanem csak az Excel-fájlok CSV-fájlok megnyitásának lehetősége.

Az egyértelműség érdekében itt egy kód a PHP-re:

Ezután exportáljuk az adatokat UTF-8 kódolással a my_fputcsv () függvény használatával. Az Excel tökéletesen megnyitja az ilyen fájlokat.

Fontos! Annak ellenére, hogy a fájl megnyílik az utf-8 kódolásban, az Excel továbbra is elmenti az ablak-1251 kódolásban.

Hogyan lehet php importálni

Kapcsolódó cikkek