-
Hi,
ich muss eine externe Seite (jobs.ch) auslesen. Um mit der Seitenblätterung der Seite klarzukommen, muss ich wohl oder übel ein paar Variablen per POST übergeben.
Also bleibt mir nichts anderes übrig als fsockopen.
Damit bekomme ich es aber nicht hin!
Hier mein Code:
Wenn ich berufsgruppe=2 weglasse, $data also einem Leerstring übergebe, bekomme ich eine Rückgabe der Seite. Mit berufsgruppe=2 gar nichts. Dann ist die Seite leer, was ja eigtl. nicht sein kann.PHP-Code:$fp = fsockopen("www.jobs.ch", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$data = "berufsgruppe=2";
$out = "POST /suche.php HTTP/1.1\r\n";
$out .= "Content-Length: ".strlen($data)."\r\n";
$out .= "Host: www.jobs.ch\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
$content = "";
while (!feof($fp)) {
$content .= fgets($fp, 128);
}
fclose($fp);
$content = str_replace("<", "v", $content);
echo $content;
}
Im Prinzip muss ich berufsgruppe und p=20 und page=20 übergeben, damit ich auf Seite 2 lande...
Kann mir jemand helfen?
Und ja, ich habe die Erlaubnis, die Seite auszulesen!
-
Nun ja, ich habs nun mit cURL versucht...
Hier der Code
Zumindest die Berufsgruppe wird übernommen, aber auf der 2ten Seite lande ich erst nicht...was habe ich hier übersehen? Wenn man in der Seitenblätterung durchklickt, wird die JS-Funktion view() aufgerufen.PHP-Code:class CURL {
var $callback = false;
function setCallback($func_name) {
$this->callback = $func_name;
}
function doRequest($method, $url, $vars) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
if ($method == 'POST') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
}
$data = curl_exec($ch);
curl_close($ch);
if ($data) {
if ($this->callback)
{
$callback = $this->callback;
$this->callback = false;
return call_user_func($callback, $data);
} else {
return $data;
}
} else {
return curl_error($ch);
}
}
function get($url) {
return $this->doRequest('GET', $url, 'NULL');
}
function post($url, $vars) {
return $this->doRequest('POST', $url, $vars);
}
}
$test = new CURL();
$wurst = $test->post("www.jobs.ch/suche.php", htmlentities("berufsgruppe=2&nav=1&p=20&page=20&target=&action="));
var_dump($wurst);
Und diese setzt lediglich die Variablen p, page und nav...mehr nicht :-/
Zu hülf...
-
Ok, gut, vergesst es
wie leicht man sich doch durch überlegen selbst helfen kann...
Irgendwo in den Notes von de.php.net hab ich gelesen dass man die POST-Variablen html-korrekt übergeben muss...so ein Schmarrn!
Dann wird ja aus berufsgruppe=2&page=20 --> berufsgruppe=2&page20...
Also htmlentities weg und es geht
Danke für die Aufmerksamkeit, seht es als Tutorial an
![]() |
PHP 5 / MySQL 5 Seminar (22 Stunden Video-Training) Preis: früher: 39,95€ - jetzt nur: 7,99€ PHP 5 / MySQL 5 Lernkurs – 22 Stunden Video-Training auf DVD Hier geht es zum Angebot Über 1.000 weitere IT-Bücher zum Sonderpreis lieferbar! |
Ähnliche Themen
-
XML Post mit PHP auslesen und in ein Array speichern
Von MiMi im Forum PHPAntworten: 4Letzter Beitrag: 12.12.07, 12:14 -
POST Variablenübergabe an externe Seiten
Von anmae im Forum PHPAntworten: 1Letzter Beitrag: 09.08.06, 09:12 -
Mit POST Daten an ne fremde Seite senden?
Von HAL im Forum PHPAntworten: 6Letzter Beitrag: 03.02.05, 13:30 -
Dateien aus externe Seite mit FTP hochladen
Von alimau im Forum PHPAntworten: 4Letzter Beitrag: 22.12.04, 09:02



Zitieren
Login





Lesezeichen