Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP]Błąd function children() on a non-object podczas parsowania
Forum PHP.pl > Forum > Przedszkole
mlody69
Witam,
posiadam następujący kod:
  1. function List($campaign_id)
  2. {
  3. require 'config.php';
  4. $date = '2011-07-31';
  5. //$date = date('Y-m-d');
  6.  
  7. $ch = curl_init();
  8. $url = "https://{$settings['client_name']}.directtrack.com/apifleet/rest/{$settings['client_name']}/".
  9. "{$settings['access_id']}/leadDetail/campaign/{$campaign_id}/".$date."/";
  10. $headers[] = "Authorization: Basic ".base64_encode($settings['username'].":".$settings['password']);
  11.  
  12. // Initiate the REST call via curl
  13. $ch = curl_init($url);
  14.  
  15. // Set the HTTP method to GET
  16. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
  17. // Add the headers defined above
  18. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  19. // Don't return headers
  20. curl_setopt($ch, CURLOPT_HEADER, false);
  21. // Return data after call is made
  22. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  23.  
  24. $response = curl_exec($ch);
  25. curl_close($ch);
  26.  
  27. $xml = simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA);
  28.  
  29. foreach($xml->children() as $lead)
  30. {
  31. $a = explode('/',$lead['location']);
  32. $return[] = array_pop($a);
  33. }
  34. if(isset($return))
  35. return $return;
  36. else
  37. return false;
  38. }

Skrypt zwraca taki bład:
Cytat
Fatal error: Call to a member function children() on a non-object in
. Próbowałem już wszystkiego i nadal nie wiem dlaczego tak się dzieje.
Crozin
Komunikat błędu jest bardzo jasny - zmienna $xml nie jest obiektem. Gdzie jest ustalana wartość zmiennej $xml? Linijkę wcześniej jako wartość zwrócona przez simplexml_load_string.
I teraz patrzysz do manuala na to co może zwrócić ta funkcja...
mlody69
Zwraca obiekt. Wywołanie kodu var_dump($xml) mówi "bool(false)" czyli muszę szukać problemu jeszcze wcześniej.
Crozin
Litości...
Cytat("http://php.net/simplexml_load_string#refsect1-function.simplexml-load-string-returnvalues")
Return Values
Returns an object of class SimpleXMLElement with properties containing the data held within the xml document, or FALSE on failure.
mlody69
Miałem na myśli, że w przypadku gdy nie ma problemów zwraca obiekt lub zwraca FALSE tak jak u mnie. Wrzuciłem skrypt na inny serwer (testowałem na localhoście) i już działa, więcj dziękuje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.