Temat: Eksport przez PHP do CSV i import do Outlooka

Walcze z takim mechanizmem:
1. Wybieram dane z bazy
2. Skryptem PHP generuje CSV z odpowiednimi wpisami i zapisuje to do pliku.
3. Importuje plik z danymi do kontaktow Outlooka.

I wlasnie przy punkcie 3 mam problemy. Robil ktos z Was cos takiego? Zawartosc pliku jest znaczek w znaczek taka sama, jak CSV wyeksportowane z Outlooka. Mimo to, przy probie importu do Outlooka wywala mi blad.Michał Tarabuła edytował(a) ten post dnia 21.11.10 o godzinie 17:57

konto usunięte

Temat: Eksport przez PHP do CSV i import do Outlooka

jaki błąd?
Może stringi nie są w "" ?

konto usunięte

Temat: Eksport przez PHP do CSV i import do Outlooka

Michał Tarabuła:
Mimo to, przy probie importu do Outlooka wywala mi blad

kodowanie pliku?

konto usunięte

Temat: Eksport przez PHP do CSV i import do Outlooka

Stawiałbym na kodowanie albo encje.

Temat: Eksport przez PHP do CSV i import do Outlooka

"W translatorze Wartości oddzielone przecinkami (Windows)podczas inicjowania translatora w celu utworznia mapy pól wystąpił błąd pliku. Program Outlook nie może pobrać danych z pliku nazwa_pliku.csv..."
Tak wygląda wyrzucany błąd.
Darek, Wojtek- kodowanie jest takie samo, jakie w pliku csv wygenerowanym przez Outlooka (ANSI). Stringi są w "". Znalazłem jeszcze możliwość, że znaki końca linii nie są windowsowe tylko unixowe. Może faktycznie to jest problem. Tylko że nie bardzo wiem jak wstawić windowsowe znaki końca linii w pliku generowanym przez skrypt php pod linuxem... :|
Marcin Fliszta

Marcin Fliszta Scrum Master

Temat: Eksport przez PHP do CSV i import do Outlooka

Jeśli chodzi o znak końca linii to generując plik csv w php dodajesz pewnie linijkę w taki sposób (końce linii linuxowe):
fwrite($fp, "tekst linijki\n");


zmień to na:
fwrite($fp, "tekst linijki\r\n");


i będą końce linii Windows.

Wyeksportuj sobie plik csv z kontaktami z Outlooka i porównaj ze swoim wygenerowanym w php... może coś drobnego umknęło uwadze. Tak to najczęściej już jest.

konto usunięte

Temat: Eksport przez PHP do CSV i import do Outlooka

Marcin Fliszta:
Jeśli chodzi o znak końca linii to generując plik csv w php dodajesz pewnie linijkę w taki sposób (końce linii linuxowe):
fwrite($fp, "tekst linijki\n");


zmień to na:
fwrite($fp, "tekst linijki\r\n");


i będą końce linii Windows.

Wyeksportuj sobie plik csv z kontaktami z Outlooka i porównaj ze swoim wygenerowanym w php... może coś drobnego umknęło uwadze. Tak to najczęściej już jest.
http://php.net/manual/en/function.fputcsv.php
od takich rzeczy są gotowe funkcje...
Marcin Fliszta

Marcin Fliszta Scrum Master

Temat: Eksport przez PHP do CSV i import do Outlooka

Kamil Brenk:
Marcin Fliszta:
Jeśli chodzi o znak końca linii to generując plik csv w php dodajesz pewnie linijkę w taki sposób (końce linii linuxowe):
fwrite($fp, "tekst linijki\n");


zmień to na:
fwrite($fp, "tekst linijki\r\n");


i będą końce linii Windows.

Wyeksportuj sobie plik csv z kontaktami z Outlooka i porównaj ze swoim wygenerowanym w php... może coś drobnego umknęło uwadze. Tak to najczęściej już jest.
http://php.net/manual/en/function.fputcsv.php
od takich rzeczy są gotowe funkcje...

Tak, zgadza się, tylko że ta funkcja może właśnie powodować problem. Jako koniec linii stosuje bowiem \n co może być problemem w aplikacjach windowsowych, które wymagają \r\n. Poniżej opisu funkcji jest o tym info w komentarzach:

http://www.php.net/manual/en/function.fputcsv.php#90883

Jeśli więc korzysta się z fputcsv() a plik po wygenerowaniu ma być wczytany pod win, to i tak trzeba pozamieniać znaki końca linii. Równie dobrze można więc użyć fwrite() wstawiając go ręcznie, albo po prostu skorzystać z podanej w komentarzu do dokumentacji funkcji mssafe_csv().

konto usunięte

Temat: Eksport przez PHP do CSV i import do Outlooka

Marcin Fliszta:
Kamil Brenk:
Marcin Fliszta:
Jeśli chodzi o znak końca linii to generując plik csv w php dodajesz pewnie linijkę w taki sposób (końce linii linuxowe):
fwrite($fp, "tekst linijki\n");


zmień to na:
fwrite($fp, "tekst linijki\r\n");


i będą końce linii Windows.

Wyeksportuj sobie plik csv z kontaktami z Outlooka i porównaj ze swoim wygenerowanym w php... może coś drobnego umknęło uwadze. Tak to najczęściej już jest.
http://php.net/manual/en/function.fputcsv.php
od takich rzeczy są gotowe funkcje...

Tak, zgadza się, tylko że ta funkcja może właśnie powodować problem. Jako koniec linii stosuje bowiem \n co może być problemem w aplikacjach windowsowych, które wymagają \r\n. Poniżej opisu funkcji jest o tym info w komentarzach:

http://www.php.net/manual/en/function.fputcsv.php#90883

Jeśli więc korzysta się z fputcsv() a plik po wygenerowaniu ma być wczytany pod win, to i tak trzeba pozamieniać znaki końca linii. Równie dobrze można więc użyć fwrite() wstawiając go ręcznie, albo po prostu skorzystać z podanej w komentarzu do dokumentacji funkcji mssafe_csv().
bardzo możliwe, nie testowałem :-) 90% serwerów to linuxy, stąd moja niewiedza, jednak czasem się tworzy/testuje pod windowsami, więc różnie to bywa - przepraszam za wprowadzenie w błąd.

Temat: Eksport przez PHP do CSV i import do Outlooka

Wlasnie fputcsv nie do końca działało tak jak bym chciał:)
Natomiast sposób Marcina, czyli fwrite($fp, "tekst linijki\r\n"); działa idealnie.
Dzięki za pomoc :)

Następna dyskusja:

Eksport z PHP/MySQL do form...




Wyślij zaproszenie do