Tabelle aus Website 'klauen'

Saber Rider

Grünschnabel
Hi ersmal.
Ich würde auf meiner Seite gerne die Tabelle des Basketballbundes anzeigen. Weil ich die Tabelle eben lieber direkt auf meiner Seite hätte, anstatt zu verlinken. Der Gebrauch ist ausschließlich Privat für das Team.
Hier habe ich schon etwas Hilfe gefunden, aber es funktioniert noch nicht ganz.
Der Link der Seite die ich einlesen will könnte z.B. dieser sein "http://www.basketball-bund.com/index.jsp?Action=102&liga_id=166". Mit der PHP-Funktion fsockopen() kann ich aber nur "www.basketball-bund.com" angeben. Selbst dann wurde irgendwie nur ein Teil angezeigt. Wenn ich die Datei oder noch die beiden Parameter "Action" und "liga_id" angebe funtioniert es nicht. Etwas Hilfe zu fsocksopen() gab es hier, aber ich verstehe den Sinn von fputs() wieder mal nicht.
Grob gesagt bräuchte ich also jemanden der mir hilft an den Quelltext der Basketballseite als Variable heranzukommen. Das ausschneiden und so klappt dann schon.

tnx, Saber Rider
 
Hast du es mal mit fopen() probiert?
oder file().

Wenn du dann die Seite in einem String oder Array hast musst du sie nur noch mit Hilfe von regulären Ausdrücken durchsuchen und das Gefundene formatiert ausgeben.
 
Zuletzt bearbeitet:
Original geschrieben von SepteraCore
Hast du es mal mit fopen() probiert?
oder file().

...

Also fopen() hab ich schon mal probiert.
Bei file() kommt folgender Fehler:
Warning: file(http://www.basketball-bund.com/index.jsp?Action=102&liga_id=166): failed to open stream: HTTP request failed! HTTP/1.1 500 in .../test1.php on line 4

Selber Fehler auch bei file_get_contents().

Wenn ich "http://www.example.com" benutze funktioniert es, es ist also grundsätzlich wohl möglich, aber bei meiner Seite stimmt was nicht.
 
Möglicher weise verhindert die Seite einen Zugriff, wenn du nicht den dementsprechenden Header sendest.

PHP:
$host = "www.dbb.com";
$data = "parameter=".$Amount."&parameter2=".$From."&parameter3=".$To;

$fp = fsockopen($host,80);

fputs($fp, "POST /PFAD/ZUM/SCRIPT HTTP/1.1\n");
fputs($fp, "Host: $host\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($data) . "\n");
fputs($fp, "User-Agent: MSIE\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, $data);

Das sollte dir helfen.
 
^^
Normalerweise würde es Funktionieren aber der Server scheint einen redirect oder so zu machen da du kein File exces bekommst ^^
 
Zuletzt bearbeitet:
Wow super fetten Dank tefla so funktioniert es:
PHP:
<?php
$host = "www.basketball-bund.com";
$data = "parameter=".$Amount."&parameter2=".$From."&parameter3=".$To;

$fp = fsockopen($host,80);

fputs($fp, "POST http://www.basketball-bund.com/index.jsp?Action=102&liga_id=166 HTTP/1.1\n");
fputs($fp, "Host: $host\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($data) . "\n");
fputs($fp, "User-Agent: MSIE\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, $data);

while (!feof($fp)) {
 $buffer.=fgets($fp,1024);}
fclose($fp);
 echo $buffer;
?>

Aber ich kappier nicht ganz was du da machst. Was sind die drei Variablen die du oben in $data einbindest? Die sind ja nirgens definiert. Und was machst du mit dem fputs? fputs schreibt ja an die Position des Zeigers $fp, aber das ist doch auf dem Server und da kann ich doch nicht hinschreiben. Also es geht, aber ich schnall es nicht.

Saber Rider
 
$data ist nur die Parameterübergabe an das Skript

also müsste dein Skript, wenn du es richtig korrekt machen willst so aussehen
PHP:
<?php
$host = "www.basketball-bund.com";
$data = "jspAction=102&liga_id=166";

$fp = fsockopen($host,80);

fputs($fp, "POST /index.jsp HTTP/1.1\n");
fputs($fp, "Host: $host\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($data) . "\n");
fputs($fp, "User-Agent: MSIE\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, $data);

while (!feof($fp)) {
 $buffer.=fgets($fp,1024);}
fclose($fp);
 echo $buffer;
?>

Das fputs gaukelt dem Server vor das du ein Browser bist. Das ist nix weiter als der Header, den der IE sendet.
 
Zurück