2011-12-23 14 views
7

Jest to kontynuacja na pytanie z tego: Algorithm to dynamically merge arraysNiecytowany Postacie w komórce zatrzymać przetwarzanie Row PHPExcel

Istnieją znaki Niecytowany w niektórych komórek w arkuszu. Próbuję uciec z nich za pomocą addslashes(), ale phpexcel wydaje się ignorować to i przestać przetwarzać pozostałe wiersze. Ten błąd pojawił się w dziennikach:

PHP Warning: Unexpected character in input: '\' (ASCII=92) state=1 

Przeanalizowałem interfejs API; Nie widziałem żadnych metod formatowania tekstu, z których mogę korzystać. (Popraw mnie, jeśli się mylę)

Twoja pomoc jest doceniana.

+1

addslashes nie ucieka okresy, php.net mówi mi .... o_O. – Mina

+2

PHPExcel nie przejmuje się ukośnikami, są po prostu znakami w ciągu znaków ... jedynym zastrzeżeniem jest użycie UTF-8. Tak długo, jak twoje własne reguły PHP z ciągami, nie powinieneś mieć żadnych problemów z biblioteką, więc wyraźnie jest to coś innego. Czy możesz podać przykład tego, co łańcuchy powodują problemy i jak je czytasz z PHPExcel i przechowujesz je w bazie danych. –

Odpowiedz

2

Z documenation PHP:

„Jest konieczne stosowanie kodowania UTF-8 dla wszystkich tekstów w PHPExcel Jeśli skrypt korzysta z innego kodowania to jest możliwe do konwersji tekstów z iconv PHP function().. "

Ucieczka postaci nie spowoduje niczego, ponieważ znaki, które nie są poprawnymi znakami UTF8, pozostaną nieważne.

Chociaż można dokonać konwersji zestawu znaków podczas przekazywania danych do PHPExcel, zdecydowanie zaleciłbym zamianę całego projektu na UTF8, ponieważ radzenie sobie z wieloma zestawami znaków w jednym projekcie nie jest dobrym problemem.