php-resource



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

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


XML Hier passt alles rein, was das Thema XML (XSLT, JSON etc...) betrifft, auch in Verbindung mit PHP

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 19-03-2008, 11:28
raz667
 Newbie
Links : Onlinestatus : raz667 ist offline
Registriert seit: Mar 2008
Beiträge: 2
raz667 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Datentransfer mittels PHP über eine XML-Schnittstelle

Hallo zusammen,

ich bin damit beauftragt, ein Skript zuschreiben (vorzugsweise in PHP) welches XML Daten an einen Server senden und als Antwort ebenfalls XML Daten empfangen soll.

Da das für mich absolutes Neuland ist und ich bisher noch nie in die Verlegenheit kam, zwei Server miteinander interagieren zu lassen, tu ich mich auch im Moment richtig schwer, einen Ansatz für dieses Problem zu finden.

Für den Server, mit dem interagiert werden soll, gibt es einen Testlink.
Dieser lautet wie folgt: http://217.110.90.105/elvia/booking/...MAIN?OpenAgent

Mein erstes (und sicher nicht letztes) Problem ist es schon, eine Verbindung mittels PHP zu diesem Server aufzubauen. Ich habe folgenden Ansatz gewählt:

PHP-Code:
$fp fsockopen("http://217.110.90.105/elvia/booking/crs.nsf/RSHPMAIN?OpenAgent"80$errno$errstr30);
if (!
$fp) {
    echo 
"$errstr ($errno)<br />\n";
} else {
    
$out "GET / HTTP/1.1\r\n";
    
$out .= "Host: http://217.110.90.105/elvia/booking/crs.nsf/RSHPMAIN?OpenAgent\r\n";
    
$out .= "Connection: Close\r\n\r\n";

    
fwrite($fp$out);
    while (!
feof($fp)) {
        echo 
fgets($fp128);
    }
    
fclose($fp);

Wenn ich dieses Skript dann aufrufe, bricht dieses mit dem Fehlercode 0 ab.
Verbinde ich jedoch via curl (ohne irgendwelche Daten zu übergeben) zu diesem Server, bekomme ich eine Antwort.

Könnt Ihr mir sagen, woran das liegt? Ist PHP vielleicht nicht das geeignete Mittel?
Ich bin für jeden Tipp dankbar!

Gruß,
raz667

Geändert von asp2php (19-03-2008 um 11:46 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 19-03-2008, 11:37
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

fsockopen erwartet nur den Host, die URL-Parameter musst du in GET Anforderung angeben. Lese mal die User Contributed Notes http://de2.php.net/manual/en/function.fsockopen.php
Mit Zitat antworten
  #3 (permalink)  
Alt 19-03-2008, 11:43
raz667
 Newbie
Links : Onlinestatus : raz667 ist offline
Registriert seit: Mar 2008
Beiträge: 2
raz667 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

danke für deine Antwort!
Aber leider hilft mir das nicht sehr viel weiter. Wie gesagt, arbeite ich zum ersten Mal mit Verbindungen zu anderen Servern, also auch mit der Funktion fsockopen().

Da mir im Moment der Überblick fehlt, fällt es mir auch schwer aus den User Contribute Notes schlau zu werden, sind die mir doch noch ein wenig zu spezifisch und gefüttert mit Infos die mich nur noch weiter verwirren.

Ist es möglich, mir kurz zu beschreiben, wie ich die XML Daten als GET anforder bzw. kennst du ein Tutorial was sich zufällig genau mit dieser Thematik auseinandersetzt?

Das würde mir schwer helfen!

Danke,
raz
Mit Zitat antworten
  #4 (permalink)  
Alt 19-03-2008, 11:46
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ähm ... alle meine Erfahrungen habe ich fast nur aus der Doku und die dazugehörige User Contributed Notes sowie eigene Try 'n Error. Daher kann ich dir leider nichts anderes anbieten.

Was ist denn so schwer daran? OK, die meisten Bsp. sind POST und HEAD, aber daran kann es doch nicht liegen, oder?
Mit Zitat antworten
  #5 (permalink)  
Alt 19-03-2008, 16:12
Manko10
 Newbie
Links : Onlinestatus : Manko10 ist offline
Registriert seit: Mar 2008
Beiträge: 115
Manko10 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

ehrlich gesagt habe ich auch nicht allzu große Erfahrungen mit Socket-Verbindungen via PHP, da es wohl eher zu den Randthematiken gehört.
Jedoch habe ich mal eine Update-Funktion zusammengebastelt, die ich dir hier einfach mal poste:
PHP-Code:
<?php
function update_app() {
    
$url parse_url("http://www.example.com/bla.xml");
    if (!isset(
$url['port'])) {
        
$url['port'] = 80;
    }
    
$url['query'] =  '';
    
$url['protocol'] = $url['scheme'].'://';
    
$eol "\r\n";
    
    
$headers =  "POST ".$url['protocol'].$url['host'].$url['path']." HTTP/1.0".$eol.
                
"Host: ".$url['host'].$eol.
                
"Referer: ".$url['protocol'].$url['host'].$url['path'].$eol.
                
"Content-Type: application/x-www-form-urlencoded".$eol.
                
"Content-Length: ".strlen($url['query']).$eol.$eol.$url['query'];
    
    
$file = @fsockopen($url['host'], $url['port'], $errno$errstr30);
    if (
$file) {
        
fputs($file$headers);
        
$result '';
        while (!
feof($file)) {
            
$result .= fgets($file500);
        }
        
fclose($file);
        
        if (!
stristr($result'200 OK')) {
            return 
false;
        }
        
        
$result preg_replace('#^.*\r\n\r\n#s'''$result);
        return 
simplexml_load_string($result);
    } else {
        return 
false;
    }
}
?>
Das ganze verbindet zu einem Server und holt XML-Daten. Danach werden die HTTP-Header entfernt und das ganze als SimpleXML-Resource zurückgegeben.

Ich hoffe mal, du kannst das für dich umbauen. Um Daten zu senden, verwendest du dann statt fputs() fwrite().
Mit Zitat antworten
  #6 (permalink)  
Alt 19-03-2008, 18:14
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Überlass einer HttpClient-Klasse die Drecksarbeit mit dem Socket. Die von Incutio ist ganz ok!
Mit Zitat antworten
  #7 (permalink)  
Alt 20-03-2008, 11:43
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Curl ?

BTW:
Eigentlich kein Xml-Problem -> falsches Forum
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 06:38 Uhr.