Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ XML _ SimpleXML nie działa

Napisany przez: AboutMe 7.11.2016, 17:10:50

Dzień dobry smile.gif

Dlaczego poniższy kod nie działa?

  1. $url = "http://domena.com/1/feed.php?mode=topics_active";
  2. $xml = simplexml_load_file($url);
  3. for($i = 0; $i < 10; $i++){
  4. $published = $xml->feed->entry[$i]->published;
  5. $html = "$published<br>";
  6. }
  7. http://www.php.net/echo $html;


XML - http://pastebin.com/XEtZEfG8

Drugie pytanie czy jest możliwe wyświetlenie zawartości label=""?

Napisany przez: nospor 7.11.2016, 22:27:27

Jeszcze jakbys byl tak mily i raczyl opisac nam na czym polega to niedzialanie tudziez jak sie objawia.
A juz szczytem bycia milym byloby jakbys zajrzal do logow

ps: bo zakladam, ze tak drobny szczegol jak zainstalowanie modulu xml dla php to raczej zrobiles.

Napisany przez: AboutMe 7.11.2016, 22:43:39

Po prostu nie wyświetla się nic poza <br>
Wyświetla się następujący błąd - Notice: Trying to get property of non-object in /home/?questionmark.gif/public_html/parser.php on line 5

W phpinfo() zwraca
Simplexml support enabled


Napisany przez: nospor 7.11.2016, 22:47:58

Brawo, odkryles w koncu blad.

A teraz zajrzyj do manuala
http://php.net/manual/en/function.simplexml-load-file.php
w przykladach podaja takie fajne cos jak print_r() - skorzystaj z tego i przyjrzyj sie jak wyglada twoj wczytany xml, bo jest inny niz ci sie wydaje

Napisany przez: AboutMe 7.11.2016, 23:19:14

Wyskakuje Failed to open... Jak to możliwe?

Napisany przez: nospor 7.11.2016, 23:24:16

Kurcze, chlopie, naucz sie w koncu opisywac problem porzadnie a nie pisac skrotami....
toz dopiero co wyskakiwal ci inny blad. Skoro teraz wyskakuje ci inny, znaczy ze zmieniles kod. Wypadaloby wiec pokazac zmieniony kod oraz wskazac dokladna linijke ktora powoduje blad.

Napisany przez: AboutMe 7.11.2016, 23:27:47

Kod taki jak w manualu:


  1. <?php
  2. // The file test.xml contains an XML document with a root element
  3. // and at least an element /[root]/title.
  4.  
  5. if (http://www.php.net/file_exists('test.xml')) {
  6. $xml = simplexml_load_file('test.xml');
  7.  
  8. http://www.php.net/print_r($xml);
  9. } else {
  10. http://www.php.net/exit('Failed to open test.xml.');
  11. }
  12. ?>



oczywiście test.xml zmieniony na http://domena.com/1/feed.php?mode=topics_active

Napisany przez: nospor 7.11.2016, 23:36:18

Po prostu do kodu, ktory miales na samym poczatku, miales dodac:
print_r($xml);
I to wszystko...

edit: zas co do pytania "jak to mozliwe"
to poraz kolejny odsylam do manuala
http://php.net/manual/en/function.file-exists.php

Napisany przez: AboutMe 7.11.2016, 23:37:31

  1. $url = "http://domena/feed.php?mode=topics_active";
  2. $xml = simplexml_load_file($url);
  3. for($i = 0; $i < 10; $i++){
  4. $published = $xml->feed->entry[$i]->published;
  5. $html = "$published<br>";
  6. }
  7. http://www.php.net/print_r($html);


niestety zwraca to samo czyli Notice: Trying to get property of non-object in /home/?questionmark.gif/public_html/parser.php on line 5

Napisany przez: nospor 7.11.2016, 23:39:21

Oswiec mnie prosze, gdzie w tym kodzie znajduje sie
print_r($xml);

Jaja se robisz? Czy poprostu sprawdzasz po ktorym durnym poscie zakmne temat? tongue.gif Uwierz, zblizasz sie do tej wlasnie granicy

Napisany przez: AboutMe 7.11.2016, 23:43:15

A sorry, chyba już za późna godzina na takie rzeczy smile.gif

Napisany przez: SmokAnalog 8.11.2016, 00:31:04

nospor skąd Twoje uwielbienie do http://php.net/print_r daje o wiele cenniejsze informacje. To głupie print_r wypisze 1 przy print_r(true) :/

A swoją drogą, niesamowicie wkurzające jest kiedy osoba zadająca pytanie nie potrafi się wczuć w pozycję tych, którym zadaje to pytanie. To są braki w jednym z obszarów tzw. inteligencji. Nie chcę nikogo obrażać, ale np. praca z takimi ludźmi to bardzo kiepska sprawa.

Napisany przez: Tomplus 8.11.2016, 07:30:37

@SmokAnalog
myślę że nospor jak i inni korzystają z tych dwóch funkcji naprzemiennie, w zależności od tego jak bardzo szczegółowe dane są potrzebne.

Napisany przez: nospor 8.11.2016, 09:34:54

Cytat
nospor skąd Twoje uwielbienie do print_r? To nie jest najlepszy sposób na debugowanie, var_dump daje o wiele cenniejsze informacje. To głupie print_r wypisze 1 przy print_r(true) :/

Alez ja doskonale sobie z tego daje sprawe. Nie ucz ksiedza dzieci robic wink.gif
W tym wypadku print_r bedzie lepsze, gdy obiekt $xml jest jak najbardziej poprawnie zainicjowany a my chcemy zobaczyc jego zawartosc. dawanie tutaj var_dump tylko zaciemni sprawe bo jak sam dobrze wiesz var_dump dorzuca jeszcze typy i dlugosci co tylko zaciemni sprawe tutaj. Poprostu trzeba wiedziec kiedy uzywac print_r a kiedy var_dump smile.gif

Cytat
myślę że nospor jak i inni korzystają z tych dwóch funkcji naprzemiennie, w zależności od tego jak bardzo szczegółowe dane są potrzebne.
Dokladnie smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)