[PHP] Jak utworzyć pliki pobierając nazwy z tablicy |
[PHP] Jak utworzyć pliki pobierając nazwy z tablicy |
14.01.2018, 03:41:16
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.01.2018 Ostrzeżenie: (0%) |
Witam,
próbuję sklecić prosty skrypt który będzie mi pobierał dane z pliku tekstowego zawierającego dane w oddzielnych linijkach (228) a dodatkowo dane w tej samej linijce odseparowane znakiem "|". aaaaaa|bbbbbb|cccccccc|ddddddd|nazwa Wszystko wygląda dobrze, tzn tablica pobiera sobie dane i ładnie się wyświetla ale kiedy dodaję linijkę tworzenia pliku pętla tworzy mi tylko 1 plik z nazwą z ostatniej linijki danych wejściowych jak poniżej:
Dlaczego pętla nie tworzy mi każdego pliku? Z góry dziękuję za naprowadzenie. |
|
|
14.01.2018, 04:33:01
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
|
|
|
14.01.2018, 10:00:23
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.01.2018 Ostrzeżenie: (0%) |
Dane są poprawne, tablica printuje się poprawnie. Próbowałem zmienić pętle for na while ale skutek taki sam. Tworzy się plik z tylko z nazwa z ostatniego rekordu tablicy.
Może to dzieje się za szybko i serwer nie nadąża z tworzeniem pliku przed przejściem do następnego rekordu? |
|
|
14.01.2018, 10:37:41
Post
#4
|
|
Grupa: Zarejestrowani Postów: 460 Pomógł: 49 Dołączył: 5.06.2011 Ostrzeżenie: (0%) |
|
|
|
14.01.2018, 12:08:36
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
1. przeczytaj dokumentację file(). Znajdziesz tam magiczną stałą która ignoruje nowe linie.
2. do iterowania po tablicach użyj foreach 3. Sprawdź czy aby na pewno plik z danymi masz poprawny. |
|
|
14.01.2018, 13:10:38
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.01.2018 Ostrzeżenie: (0%) |
Ustaw wyświetlanie błędów, to raz. Dwa, wstaw po 7. linii taki kod: Powinno coś powiedzieć Zrobiłem zwraca poniższe:
|
|
|
14.01.2018, 13:50:02
Post
#7
|
|
Grupa: Zarejestrowani Postów: 460 Pomógł: 49 Dołączył: 5.06.2011 Ostrzeżenie: (0%) |
|
|
|
14.01.2018, 15:02:30
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.01.2018 Ostrzeżenie: (0%) |
Linii jest więcej przyciąłem dane do dwóch linijek by wyeliminować ewentualne błędy w danych, ale mimo to tworzony jest jedynie plik2.
|
|
|
14.01.2018, 15:19:12
Post
#9
|
|
Grupa: Zarejestrowani Postów: 460 Pomógł: 49 Dołączył: 5.06.2011 Ostrzeżenie: (0%) |
|
|
|
14.01.2018, 15:50:19
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.01.2018 Ostrzeżenie: (0%) |
Jak zrobię to ręcznie oba pliki są tworzone, z pętli nie mogę, foreach również..
|
|
|
14.01.2018, 16:09:11
Post
#11
|
|
Grupa: Zarejestrowani Postów: 280 Pomógł: 46 Dołączył: 23.03.2010 Ostrzeżenie: (0%) |
Tylko ten skrypt uruchamiasz? Mi działa poprawnie nie licząc błędu, który łatwo poprawić (dodać np. trim).
Tworzy poprawnie pliki (nazwa, nazwa2, nazwa3) z prawidłową zawartością. Spróbuj dać dane, które ja dałem i sprawdź czy działa poprawnie (umieść moje dane wejściowe do swojego pliku). Jeśli zadziała to oznacza, że Twój plik jest niepoprawny przez co skrypt nie działa poprawnie. Dane wejściowe: Kod aaaaaa|bbbbbb|cccccccc|ddddddd|nazwa aaaaaa|bbbbbb|cccccccc|ddddddd|nazwa2 aaaaaa|bbbbbb|cccccccc|ddddddd|nazwa3 Kod PHP Notice: Undefined offset: 4 in /home/sphere/tmp/test.php on line 9
PHP Notice: Undefined offset: 4 in /home/sphere/tmp/test.php on line 9 PHP Warning: file_put_contents(): Filename cannot be empty in /home/sphere/tmp/test.php on line 9 <pre>Array ( [0] => Array ( [0] => aaaaaa [1] => bbbbbb [2] => cccccccc [3] => ddddddd [4] => nazwa ) [1] => Array ( [0] => aaaaaa [1] => bbbbbb [2] => cccccccc [3] => ddddddd [4] => nazwa2 ) [2] => Array ( [0] => aaaaaa [1] => bbbbbb [2] => cccccccc [3] => ddddddd [4] => nazwa3 ) [3] => Array ( [0] => ) ) |
|
|
14.01.2018, 18:45:52
Post
#12
|
|
Grupa: Zarejestrowani Postów: 460 Pomógł: 49 Dołączył: 5.06.2011 Ostrzeżenie: (0%) |
Zdaje się, że ten plik txt jest tworzony w windows i znaki \r czynią chaos. Lektura https://stackoverflow.com/questions/3274916...from-a-txt-file
|
|
|
16.01.2018, 23:52:25
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 14.01.2018 Ostrzeżenie: (0%) |
Muszę sprawdzić jak będzie na całym pliku ale na testowych danych działa, tak więc wygląda na problem z liniami. Próbowałem na innych serwerach, na jednym tworzyły się 2 pliki ale pierwszy był jakby zablokowany, problem z usunięciem. Na moim lokalnym skrypt zadziałał od razu. Także wygląda na to że serwer ma wpływ na tak prosty skrypt
Dziękuję za pomoc. Poniższy kod działa w 100%, może komuś się przyda.
|
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 08:20 |