Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> fputcsv brak ' " '
buracky
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


Witajcie,
Stworzyłem tablicę, której teksty powinny być oddzielone średnikiem ';' a każdy tekst powinien być w cudzysłowiu " .

Z jakiegoś powodu działa prawidłowo rozdzielanie tekstu przez średnik, natomiast teksty tylko w niektórych przypadkach są w cudzysłowiach.
W cudzysłowiach są tylko teksty, które w polu bazy zapisane są jako dwa wyrazy np.: łódź kaliska . Te, które są jednoczłonowe nie mają wymaganych '"' .

Instrukcja końcowa
  1. foreach ($D as $key => $value) {
  2. fputcsv($output, $value, ';' , '"');
  3. }


Oczywiście wszystkie nagłówki zdefiniowane, wartości przenoszone są prawidłowo ale nie wpisuje ich w ' " '


Dziękuję za pomoc.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Nie są objęte bo nie ma takiej potrzeby.
Musiałbyś sam przelecieć wszystkie kolumny i objąć je w " przy okazji wyłączając " dla fputcsv.
Go to the top of the page
+Quote Post
buracky
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


Tyle godzin spędziłem nad "dodaniem" ' " ' , że nie pomyślałem, żeby usunąć znaki ohno-smiley.gif

Dzięki wielkie ,
proste rozwiązanie a cieszy !

Go to the top of the page
+Quote Post
lukaskolista
post
Post #4





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Czekaj czekaj. Jakie znaki usunąłeś? Generalnie " jest domyślnym znakiem do esacpe'owania stringów. Jest uzywany tylko wtedy, kiedy php uzna, że jest taka konieczność, bo np. uzyłeś znaku specjalnego jak spacja. Brak "" dla stringów typu:
abcxyz
nie jest niczym złym, natomiast dla np.:
ggsgdr;gdrgdr fsergfser
jako jedna kolumna w pliku csv już musi występować.
Go to the top of the page
+Quote Post
buracky
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


Dopiero dzisiaj do tego siadłem.

Faktycznie nie ma możliwości wyłączenia ' " ' . Wywala błąd, że wymagany parametr.

Wróciłem więc do punktu wyjścia.

Rodzą się dwa pytania :
1. Czy w ogóle można wyłączyć " ?
2. Jak w pozostałych przypadkach, w których PHP nie dodaje " jako oznaczenie tekstu je dodać ?

Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Dodaj po prostu zamiasz '"' -> '' i tyle,
a potem w każdej iteracji do każdej kolumny musisz ręcznie dać $row['col'] = '"'.$row['col'].'"';
i będziesz miał wszystkie w ", + ew. sprawdzaj sobie !is_numeric i wtedy dodawaj "
Go to the top of the page
+Quote Post
buracky
post
Post #7





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


Nie przeczytałeś poprzedniego wpisu.

Nie można podać w parametrze pustego '' bo

<b>Warning</b>: fputcsv(): enclosure must be a character in <b>

Więc taki format :

  1. fputcsv($output, $value, ';', '');


nie działa ...

Ten post edytował buracky 11.02.2016, 10:38:09
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


A nie powiedziałeś że wywala taki błąd wink.gif

To spróbuj przed zapisem dodać " do stringów tak jak pisałem.
Go to the top of the page
+Quote Post
lukaskolista
post
Post #9





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Ale po właściwie tak bardzo chcesz dodawać cokolwiek do kolumn w csv?
Go to the top of the page
+Quote Post
buracky
post
Post #10





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 13.06.2007

Ostrzeżenie: (0%)
-----


Bo taki jest wymóg importu po drugiej stronie. Każdy tekst ma być w " a teksty rozdzielone mają być ;
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 10:56