php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-12-2007, 13:18
alex2iceman
 Registrierter Benutzer
Links : Onlinestatus : alex2iceman ist offline
Registriert seit: May 2007
Beiträge: 120
alex2iceman ist zur Zeit noch ein unbeschriebenes Blatt
Standard XML-Push

Hallo Leute! Ich stehe vor einem Problem und bräuchte mal einen Tipp.

Für eine Homepage möchte ich aus einer Datenbank (cb.heimat.de) Termine auslesen. Die Datenbank ist so angelegt, dass man durch den Aufruf von zum Beispiel "http://cb.heimat.de/interface/api/location.php?city=2384" sämtliche Veranstaltungen aus Aachen als XML-String erhält.

Ich habe schon mal mit XML zu tun gehabt, und damals benutzte ich die XML-Klasse xmltophp um an den String heranzukommen. Und zwar wurde die php-Datei von Flash aufgerufen, wobei XML-Daten an die PHP-Datei mit der XML-Klasse übergeben wurden. In dieser PHP-Datei konnte ich dann so auf den XML-String zugreifen:
PHP-Code:
$XML = new xmltophp();
$elements $XML->parseXMLintoarray($HTTP_RAW_POST_DATA);
$uebung $elements['EAT']['INFOS']['UEBUNG_ID'];
$action $elements['EAT']['INFOS']['REQUEST'];
$userid $elements['EAT']['INFOS']['USER_ID']; 
Nun hab ich mal versucht, den zurückgegebenen XML-String so abzufangen:

PHP-Code:
$XML = new xmltophp();
$elements $XML->parseXMLintoarray("http://cb.heimat.de/interface/api/location.php?id=3493"); 
Was nicht funktioniert hat. In der Klasse wird die Funktion
PHP-Code:
xml_parse_into_struct($parser$response$vals); 
angewendet, wobei $response der String mit der URL ist.
Normalerweise muss ich doch die URL "http://cb.heimat.de/interface/api/location.php?id=3493" irgendwie pushen, den Rückgabewert einfangen und in einer Variable ablegen. Erst dann kann ich wahrscheinlich auf den XML-String zugreifen, oder?

Aber wie bewerkstellige ich den nun diesen PHP-Push? Oder bin ich aufm Holzweg?

Würde mich über Tipps freuen.

MfG

Alex
Mit Zitat antworten
  #2 (permalink)  
Alt 18-12-2007, 14:24
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Push? Ich würde das Pull nennen.

PHP-Code:
$xmlfile file_get_contents('http://cb.heimat.de/interface/api/location.php?id=3493');

$XML = new xmltophp();
$elements $XML->parseXMLintoarray($xmlfile); 
Mit Zitat antworten
  #3 (permalink)  
Alt 18-12-2007, 14:26
XGremliN
 PHP Senior
Links : Onlinestatus : XGremliN ist offline
Registriert seit: Sep 2003
Ort: Karl-Marx-Stadt
Beiträge: 1.900
XGremliN ist zur Zeit noch ein unbeschriebenes Blatt
Standard

probier mal das:
PHP-Code:
ob_start();
$elements $XML->parseXMLintoarray("http://cb.heimat.de/interface/api/location.php?id=3493");
$str_return ob_get_contents();
ob_end_clean(); 
so konnte ich mir Google-Koordinaten holen
__________________
it's not a bug,
it's a feature!
Mit Zitat antworten
  #4 (permalink)  
Alt 18-12-2007, 15:08
alex2iceman
 Registrierter Benutzer
Links : Onlinestatus : alex2iceman ist offline
Registriert seit: May 2007
Beiträge: 120
alex2iceman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also leider funzen beide Möglichkeiten nicht auf Anhieb.


Bei dieser Variante
PHP-Code:
$xmlfile file_get_contents('http://cb.heimat.de/interface/api/location.php?id=3493'); 
kommt die Klasse nicht klar, es kommt eine Fehlermeldung, die sich auf die Zeilen innerhalb der Klasse bezieht:

Warning: %v%v() [function.%v]: The first argument should be an array in /srv/www/vhosts/artists.de/httpdocs/termine_connect.php on line 40

Warning: Invalid argument supplied for foreach() in /srv/www/vhosts/artists.de/httpdocs/termine_connect.php on line 41
Array

Die betroffene Funktion:


PHP-Code:
function correctentries($dataarray){
      if(
is_array($dataarray)){
        
$keys =  array_keys($dataarray);
        if (
count($keys)== AND is_int($keys[0])){
          
$tmp $dataarray[0];
          unset(
$dataarray[0]);
          
$dataarray $tmp;
        }
        
$keys2 array_keys($dataarray);
        foreach(
$keys2 as $key){
          
$tmp2 $dataarray[$key];
          unset(
$dataarray[$key]);
          
$dataarray[$key] = $this->correctentries($tmp2);
          unset(
$tmp2);
        }
      }
      return 
$dataarray;
    } 
Die Zeile 40 fängt mit $keys2 an. Ich kann mit diesem Fehler leider nichts anfangen.


Die Zweite Variante gibt einen Fatal Error:
Fatal error: Call to a member function parseXMLintoarray() on a non-object in /srv/www/vhosts/artists.de/httpdocs/termine_connect.php on line 52

Ich hab mal in der Zwischenzeit recherschiert...handelt es sich hierbei um einen HTTP-Request oder Server-Request?
Mit Zitat antworten
  #5 (permalink)  
Alt 18-12-2007, 15:26
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard Re: XML-Push

Lass dir $xmlfile mal ausgeben.
Mit Zitat antworten
  #6 (permalink)  
Alt 18-12-2007, 15:31
alex2iceman
 Registrierter Benutzer
Links : Onlinestatus : alex2iceman ist offline
Registriert seit: May 2007
Beiträge: 120
alex2iceman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

bleibt leider leer....

PHP-Code:
$xmlfile file_get_contents('http://cb.heimat.de/interface/api/location.php?id=3493');

/*$XML = new xmltophp();
$elements = $XML->parseXMLintoarray($xmlfile);*/
echo $xmlfile
Mit Zitat antworten
  #7 (permalink)  
Alt 18-12-2007, 15:33
alex2iceman
 Registrierter Benutzer
Links : Onlinestatus : alex2iceman ist offline
Registriert seit: May 2007
Beiträge: 120
alex2iceman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Besteht das Problem nicht eher dadrin, dass die hier vorgeschlagenen Lösungen die php-Datei selbst einzulesen versuchen anstatt deren Ausgabe??
Mit Zitat antworten
  #8 (permalink)  
Alt 18-12-2007, 15:33
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

(Warum nimmst du nicht simpleXML?)
Mit Zitat antworten
  #9 (permalink)  
Alt 18-12-2007, 15:42
alex2iceman
 Registrierter Benutzer
Links : Onlinestatus : alex2iceman ist offline
Registriert seit: May 2007
Beiträge: 120
alex2iceman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Genau das hab ich eben gemacht.
Aber Problem besteht weiterhin. Wenn ich die URL im Browser aufrufe, die XML-Ausgabe in eine XML-Datei abspeichere und diese Datei bei mir auf dem Server ablege, dann kann ich die Daten auslesen.

Aber ich möchte das die URL innerhalb meiner PHP aufgerufen wird, damit der ausgegebene String automatisch übernommen wird. So muss ich nicht selbst zwischenspeichern.
Mit Zitat antworten
  #10 (permalink)  
Alt 18-12-2007, 16:09
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Überprüfe mal, ob du generell mit file_get_contents Daten über http holen kannst. Ansonsten kannst du auch cURL nutzen oder deine PHP-Installation entsprechend anpassen, wenn du die Möglichkeit hast.
Mit Zitat antworten
  #11 (permalink)  
Alt 18-12-2007, 16:17
alex2iceman
 Registrierter Benutzer
Links : Onlinestatus : alex2iceman ist offline
Registriert seit: May 2007
Beiträge: 120
alex2iceman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe schon ein paar Stunden diesem Thema erfolglos gewidmet daher nehme ich einfach die Lösung an, die jetzt funktioniert. Den vom Browser zurückgegebenen XML-String bei mir als XML-Datei abspeichern und per
PHP-Code:
simplexml_load_file('test.xml'); 
öffnen.

file_get_contents liefert nichts.
Mit Zitat antworten
  #12 (permalink)  
Alt 18-12-2007, 16:20
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Könnte es sein, dass in deiner php.ini allow_url_fopen auf 0 steht?
Mit Zitat antworten
  #13 (permalink)  
Alt 18-12-2007, 23:02
XGremliN
 PHP Senior
Links : Onlinestatus : XGremliN ist offline
Registriert seit: Sep 2003
Ort: Karl-Marx-Stadt
Beiträge: 1.900
XGremliN ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn dem so ist hast du schlechte karten
__________________
it's not a bug,
it's a feature!
Mit Zitat antworten
  #14 (permalink)  
Alt 19-12-2007, 13:33
alex2iceman
 Registrierter Benutzer
Links : Onlinestatus : alex2iceman ist offline
Registriert seit: May 2007
Beiträge: 120
alex2iceman ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von unset
Könnte es sein, dass in deiner php.ini allow_url_fopen auf 0 steht?
Auf dem Abfrageserver oder auf dem Antwortserver? Ich weiß nicht wie der Antwortserver eingestellt ist, aber wenn die Datei genau dafür gedacht ist...

Auf meinem Server steht sie jedenfalls auf "on"
Mit Zitat antworten
  #15 (permalink)  
Alt 19-12-2007, 13:38
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Und du kannst KEINE Seite mit file_get_contents() einlesen? Versuch mal www.example.com
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:06 Uhr.