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.
