Problem mit fsockopen

Dolphon

Erfahrenes Mitglied
Hi,

aus einer txt werden UST Nummern geholt (welches einwandfrei läuft).
Beim Bundeszentral Amt für Steuern kann man diese UST -Nummern auf Ihre Gültigkeit überprüfen lassen.
Diese STellen dafür ein extra Schnittstelle zur Verfügung.
Weil es Umständlich ist jede Nummer einzeln zu Überprüfen habe ich ein Skript geschreiben welches mir die Arbeit abnehmen soll.
Das Skript ruft bei jedem Schleifendurchlauf eine Adrese auf, und soll den html Code der Seite nehmen und ausgeben, damit ich den dortigen inhalt dann später benutzen kann.

Leider scheint er aber den html Code nicht zu kopieren.
Eine Fehlermeldung erhalte ich auch nicht.
EVt. weiß einer von euch woran es liegt.

Code:
<?php

error_reporting(E_ALL);

$ust1='DE147924784';

$fp = fopen("ust.txt", "r");

if ($fp)
{

$zeilen = fgets($fp);

$result=explode(";", $zeilen);

for($x = 0; $x < count($result); $x++)
{
  echo $result[$x];
  echo "<br>";
echo "http://evatr.bff-online.de/evatrRPC?UstId_1=$ust1&UstId_2=$result[$x]&Firmenname=&Ort=&PLZ=&Strasse=&Druck=nein";
echo "<br>";

$fp2 = fsockopen("evatr.bff-online.de",80);
fputs($fp2, "GET evatrRPC?UstId_1=$ust1&UstId_2=$result[$x]&Firmenname=&Ort=&PLZ=&Strasse=&Druck=nein\r\n");
fputs($fp2, "Host: evatr.bff-online.de\r\n");
fputs($fp2, "\r\n");
while (!feof($fp2)) {
    $quelltext = fgets($fp2,128);
}
echo $quelltext;
}}
fclose($fp);
?>
 
Wenn Du die Anfrage so sendest duerfte die Antwort schon nach der folgenden Zeile losgeschickt werden.
PHP:
fputs($fp2, "GET evatrRPC?UstId_1=$ust1&UstId_2=$result[$x]&Firmenname=&Ort=&PLZ=&Strasse=&Druck=nein\r\n");
Dementsprechend koennte es sein, dass durch die anderen gesandten Werte die Antwort verloren geht.
Aender diese Zeile mal wie folgt ab:
PHP:
fputs($fp2, "GET evatrRPC?UstId_1=$ust1&UstId_2=$result[$x]&Firmenname=&Ort=&PLZ=&Strasse=&Druck=nein HTTP/1.1\r\n");
 
So habe die Zeile abgeändert, aber angezeigt wird mir noch nichts.
Kann man evt. ein Schleifenverzögerung einbauen?

Evt. ist das Skript zu schnell.
 
Das denk ich eigentlich nicht.
Ich hab ein paar Scripts geschrieben welche ueber HTTP mit einem anderen Server kommunizieren und ich musste da bisher nie was ausbremsen.

Vielleicht ist in diesem Zusammenhang ja auch meine HTTP-Klasse , oder das dazugehoerige Tutorial, nicht uninteressant fuer Dich.
 
Du müsstest den angefragten URL relativ angeben:
PHP:
fputs($fp2, 'GET /evatrRPC?UstId_1='.rawurlencode($ust1).'&UstId_2='.rawurlencode($result[$x]).'&Firmenname=&Ort=&PLZ=&Strasse=&Druck=nein HTTP/1.1'."\r\n");
 
Zurück