[PHP] błędy w generowaniu csv |
[PHP] błędy w generowaniu csv |
1.06.2018, 22:35:50
Post
#1
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.03.2018 Ostrzeżenie: (0%) |
napisałem skrypt który z xml generuje csv i działa to dla większości z ponad 20.000 węzłów, ale niektóre wygenerowane linie csv są zepsute i nie mam pojęcia z jakiego powodu. wrzuciłem na hosting plik (ma 48mb ale widać w kilku miejscach te błędy gdy wyłączy się word wrap - nagle następuje przełamanie linii, albo jakiś notice) wynik
|
|
|
1.06.2018, 22:43:29
Post
#2
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) |
Czy mógłbyś podać kod?
|
|
|
1.06.2018, 23:11:44
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Zamiast podawać ogromny plik, który w dodatku być może zawiera wrażliwe dane, wysil się na wycięcie z niego jednej prawidłowej i jednej nieprawidłowej linii. I, jak kolega wyżej zasugerował, pokaż kod.
|
|
|
2.06.2018, 06:36:28
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Kod <b>Notice</b>: Trying to get property 'LastName' of non-object in <b>H:\xampp\htdocs\pubmed\csv.php</b> on line <b>71</b><br /> <br /> <b>Notice</b>: Trying to get property 'ForeName' of non-object in <b>H:\xampp\htdocs\pubmed\csv.php</b> on line <b>73</b><br /> Jakieś notice... Przełamania lini też są poprawne tylko Ty nie poprawnie generujesz CSV. Teksty powinny być ujęte w np. " wtedy przełamanie linni jest nie istotne. KOD pokaż.. |
|
|
2.06.2018, 11:06:04
Post
#5
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.03.2018 Ostrzeżenie: (0%) |
link do skryptu zamieniającego xml (312mb) na csv. ładuje się 1-2min.
http://evidence-based-dentistry.org/csv.php view-source:http://evidence-based-dentistry.org/csv.php np.linie 24,918,4284 csv.php
|
|
|
2.06.2018, 11:26:10
Post
#6
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) |
Podaj kod w formacie xml, a nie coś już wygenerowanego. OK, dobra już nic, nie zajrzałem do view-source.
Podaj tego jakiś wycinek, bo u mnie wywala błędy (warning). Ten post edytował Neutral 2.06.2018, 11:34:43 |
|
|
2.06.2018, 11:29:28
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
PHP ma wbudowane funkcje do obsługi CSV, skorzystaj z nich. W Twojej wersji wystarczy, że coś ma wewnątrz znak @ i już masz błąd. Poza tym masz HTML w CSV? Na 99% coś źle kombinujesz.
|
|
|
2.06.2018, 20:21:50
Post
#8
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.03.2018 Ostrzeżenie: (0%) |
wstawiam html do csv i to działa (wordpress odczytuje to prawidłowo), choć pewnie można to zrobić inaczej i lepiej. w tekście nie ma znaków @ innych niż separatory kolumn bo są kasowane wcześniej przez php. pytanie mam tylko z czego wynikają te błędy. że brakuje ' lub " ?
bardzo proszę o pomoc w tym temacie. Ten post edytował neurogen 2.06.2018, 18:32:38 |
|
|
3.06.2018, 12:36:32
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Jeśli Author to normalna tablica, zamień sobie to:
Na to:
|
|
|
3.06.2018, 17:15:53
Post
#10
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.03.2018 Ostrzeżenie: (0%) |
dzięki to pewnie skróci kod ale raczej nie zlikwiduje błędów.
|
|
|
3.06.2018, 17:43:36
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Nie mów hop może naprawić, bo Twój błąd to odwoływanie się do nieistniejącego obiektu.
|
|
|
3.06.2018, 18:54:03
Post
#12
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.03.2018 Ostrzeżenie: (0%) |
<b>Warning</b>: array_map(): Argument #2 should be an array in <b>H:\xampp\htdocs\pubmed\csv.php</b> on line <b>106</b><br />
<br /> <b>Warning</b>: implode(): Invalid arguments passed in <b>H:\xampp\htdocs\pubmed\csv.php</b> on line <b>106</b><br /> |
|
|
3.06.2018, 19:00:30
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Czyli to nie jest tablica, ale obiekt implementujący ArrayAccess. Ja bym poszedł w tym kierunku, żeby pozamieniać ten kod z wypisywaniem autorów na coś zgrabniejszego i bezpieczniejszego. Mogę Ci pomóc z ogarnięciem tego, jeśli mi powiesz gdzie mogę znaleźć tę bibliotekę.
|
|
|
3.06.2018, 19:07:08
Post
#14
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.03.2018 Ostrzeżenie: (0%) |
|
|
|
3.06.2018, 19:12:22
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Link do PHP nie działa.
|
|
|
3.06.2018, 19:25:51
Post
#16
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.03.2018 Ostrzeżenie: (0%) |
poprawka: txt
|
|
|
3.06.2018, 19:55:58
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Spróbuj tego:
Nie wiem jak zgrabniej zamienić SimpleXMLElement na tablicę dzieci, ta bilbioteka jest strasznie wkur*iająca. |
|
|
4.06.2018, 06:31:43
Post
#18
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.03.2018 Ostrzeżenie: (0%) |
niestety te same błędy
|
|
|
4.06.2018, 08:00:39
Post
#19
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
U mnie błędów nie ma, ale prawdopodobnie korzystasz z innego pliku XML niż ja. W kodzie jest użyty 2017.xml, a wysłałeś mi 2018.xml.
|
|
|
4.06.2018, 10:04:07
Post
#20
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.03.2018 Ostrzeżenie: (0%) |
faktycznie nie zauważam błędów NOTICE ale te przełamania kodu nadal występują i nie wiem dlaczego. widać to w podglądzie strony np linia 24 view-source:http://evidence-based-dentistry.org/csv.php
|
|
|
Wersja Lo-Fi | Aktualny czas: 18.04.2024 - 09:15 |