Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Externe Website aufrufen



jensma
14.03.2009, 17:18
Halli Hallo,

ich habe leider keinen blassen Dunst von PHP und hätte da eine Frage.

Zwar möchte ich, dass meine Website eine externe Website aufruft und anzeigt.
Das habe ich mir so ähnlich vorgestellt:

Man ruft auf: www.meinhost.de/userjensmann/index.php. Dann bekommt man zB die Seite von Google zu sehen. Ich möchte also, dass die index.php entweder den Inhalt von google.de anzeigt oder herunterlädt. Sollte es nur eine Funktion zum Herunterladen geben, dann bräuchte ich nur den Text.

Ich hoffe, ihr koönnt mir helfen sofern soetwas mit PHP machbar ist.

Grüße,
Jens

PS: Mein Hoster ist PHP-fähig. Ich glaube, der unterstützt die neuste Version. Falls das von Belang ist, kann ich auch noch mal nachschauen.

drunken monkey
14.03.2009, 17:29
<?php

echo file_get_contents("http://www.google.com/");
Das sollte mit PHP 5 funktionieren – aber nur, wenn in der php.ini die Direktive allow_url_fopen auf 1 steht.
Für PHP 4 geht's ganz ähnlich, aber die Direktive dürfte eher das Problem sein: die haben (afaik) die meisten Betreiber deaktiviert, und werden es dich wahrscheinlich auch nicht aktivieren lassen.

Ansonsten fiele mir eigentlich nur Weiterleiten ein, was anderes bekommst du mit PHP wohl nicht hin.

Ahja, wie legal das wäre, ist imo auch fraglich. *kratz*

jensma
14.03.2009, 17:49
Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /users/jensma/www/test.php on line 3

Warning: file_get_contents(http://www.google.com/) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /users/jensma/www/test.php on line 3

Mist.

edit: Hat jemand einen Anbieter parat, der den Befehl unterstützt? Größe und Werbeeinblendungen sind egal.

Freezy
14.03.2009, 20:09
Lass dir mal die PHPInfo ausgeben und schau, ob cURL mit eincompiliert wurde. Wenn das so ist, kannst du den Seiteninhalt auch darüber abrufen.



$oHttpRequest = curl_init();
curl_setopt( $oHttpRequest, CURLOPT_URL, $sUrl );
curl_setopt( $oHttpRequest, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $oHttpRequest, CURLOPT_CONNECTTIMEOUT, 15 );
curl_setopt( $oHttpRequest, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.0)' );

$sStream = curl_exec( $oHttpRequest );
curl_close( $oHttpRequest );


Edit: Vieleicht geht auch 'fgets()'. Siehe PHP Docu für weiteres.

jensma
14.03.2009, 22:15
Fatal error: Call to undefined function curl_init() in /users/jensma/www/test3.php on line 2

Uhm, das bekomme ich zurück. Ich versuche jetzt einen komplett anderen Weg :(

Xardas der Dunkle
15.03.2009, 00:52
Curl ist eh ziemlich selten installiert ...
Folgendes sollte hingegen funktionieren:


<?php
function getRemoteFile($address) {
$info = parse_url($address);
if($fp = fsockopen($info['host'], (isset($info['port']) ? $info['port'] : 80), &$errno, &$error, 80)) {
fwrite($fp, 'GET ' . $info['path'] . (isset($info['query']) ? '?' . $info['query'] : '') . ' HTTP/1.1' . "\r\n");
fwrite($fp, 'Host: ' . $info['host'] . "\r\n");
fwrite($fp, 'Connection: close' . "\r\n\r\n");

$getContent = false;
$content = '';
while(!feof($fp)) {
$line = fgets($fp, 1024);
if(!$getContent && $line == "\r\n") {
$getContent = true;
} else {
$content .= $line;
}
}
return $content;
} else {
die ($errno . '# ' . $errro);
}
}

echo getRemoteFile('http://www.google.de/');

Maisaffe
21.03.2009, 20:30
Die Frage ist: Was hast Du denn genau davon? Ich sehe es noch kommen das Du eines Tages versucht eine Website zu hijacken und Suchmaschinen Deine Website/s deshalb ignorieren werden für die folgenden Monate.

Freezy
30.03.2009, 07:41
Die Frage ist: Was hast Du denn genau davon? Ich sehe es noch kommen das Du eines Tages versucht eine Website zu hijacken und Suchmaschinen Deine Website/s deshalb ignorieren werden für die folgenden Monate.

Sowas muss nicht immer gleich böse sein :D Es gibt direkt eine standartisierte Schnittstelle, welche auf soetwas aufbaut. Nennt sich REST(full) und arbeitet meist mit XML Dateien - im grunde eine Art abgespecktes SOAP. :)

Maisaffe
30.03.2009, 18:10
Sowas muss nicht immer gleich böse sein :D Es gibt direkt eine standartisierte Schnittstelle, welche auf soetwas aufbaut. Nennt sich REST(full) und arbeitet meist mit XML Dateien - im grunde eine Art abgespecktes SOAP. :)Sieht allerdings soweit nicht nach REST/SOAP aus - und anhand seiner Beschreibung klingt es nicht so als würde er diese Funktionalitäten kennen. :o

Nachtrag: Der User ist Böse!111</paranoia> :A