html von extern laden

Missingno

Grünschnabel
Hallo miteinander!
Nach Stunden des Suchens und Ausprobierens geb ich es nun schon fast auf, ihr seid quasi meine letzte Hoffnung.

Also, mein "Problem" ist eigentlich extrem einfach:
Ich möchte von irgendeinem Webserver den HTML Code einer Seite in einem String haben um den dann weiterverarbeiten zu können.

Ich hatte im Internet mit Google und co. zig Codes gefunden (kurze von einigen Zielen, lange von mehreren Seiten..), doch keiner brachte mir das gewünschte Ergebnis. Auch hier auf Tutorials.de fand ich bislang keinen Code der diese simple Aufgabe hätte bewältigen können.

Hier nun mein Code wie er am Schluss aussah:

PHP:
<?php

$url = "http://www.google.com";

$file = @fopen ($url,"r");

$data = fgets($file,2000);

fclose($file);

echo $data;

?>

Ich will schlussendlich nicht google.com auslesen. Aber sollte zum testen doch egal sein was für html zurück kommt.

Danke schon mal im Voraus!
 
Mit Deinem Quellcode liest Du nur die erste Zeile aus.
Versuch mal das:

PHP:
<?php

$url = "http://www.google.com";

$file = fopen ($url,"r");

while (!feof($file)) {    $data = fgets($file, 4096);
    echo $data;
}
fclose ($file); 

?>
 
Ich würde aber vorsichtig sein, den HTML-Inhalt anderer Webseiten auszulesen. Wenn ich mich recht entsinne, ist das nicht unbedingt legal!
Sprich vorher mit dem Anbieter der Webseite, damit es da keinen Ärger gibt!
 
Mit Deinem Quellcode liest Du nur die erste Zeile aus.
Versuch mal das:

Stimmt, hätte nur eine Zeile ausgelesen.

Doch auch so funktioniert der Code nicht. Ich glaube fast, es liegt nicht am Code sondern an meinem Webserver.
Ob es ihm Probleme bereitet, dass ich nicht den Standardport fürs Internet verwende?
Oder macht ihm vielleicht der Proxy zu schaffen?

Werde es so bald als möglich mal in einem anderen Netz mit "normalen" Bedingungen testen.

Danke schon mal!

------

Ich würde aber vorsichtig sein, den HTML-Inhalt anderer Webseiten auszulesen. Wenn ich mich recht entsinne, ist das nicht unbedingt legal!
Sprich vorher mit dem Anbieter der Webseite, damit es da keinen Ärger gibt!

Naja, ich möchte ja auch nur ein paar Texte auslesen, nichts was irgendwie urheberrechtlich geschützt oder von privater Natur ist.
Doch eine Absprache wäre sicher dann nicht schlecht. Danke für den Hinweis!
 
Soll fopen() auf externe URLs zugreifen können, muss in der php.ini ALLOW_URL_FOPEN auf true gesetzt werden (ich meine die Einstellung heisst so).

Standardmässig ist es, so glaube ich, auf false gesetzt und das ist aus Sicherheitssicht auch besser so.

Versuche lieber per fsockopen() einen Socket zu öffnen, dies sollte keine Probleme verursachen. Im PHP Manual und in den Kommentaren gibt es genug Beispiele.
Die HTTP Connection Klasse von tutorials.de Mod Dennis Wronka kann dies meine ich auch. Hier der Link zu seiner Class Collection -> http://php-classes.sourceforge.net/
 
So, habe nun mal alles auf einem Webserver bei mir zu hause laufen gelassen und es funktioniert einwandfrei!

Dann hab ich es mal auf den Webserver im intrnet geladen wo ich eigentlich dann haben möchte doch..

Soll fopen() auf externe URLs zugreifen können, muss in der php.ini ALLOW_URL_FOPEN auf true gesetzt werden (ich meine die Einstellung heisst so).

genau das Problem hab ich halt dann da. Und da ich nicht Admin des Servers bin gehts halt so auch nicht.

Ein alter Schulkamerad hat mir noch geraten es mit file_get_contents zu versuchen.
Lokal funktioniert dies auch wieder wunderbar, doch der Webserver im Netz macht da auch wieder Probleme.

Aber danke vielmals für all die guten Ratschläge!
 
Ok, das Problem hat sich nun mittlerweile erledigt.

Alle Dinge wie fopen(), fsockopen() oder die Funktionen in Dennis Wronkas HTTP Connections sind standardmässig auf dem Webserver auf dem ich das gerne hätte laufen lassen wollen aus Sicherheitsgründen gesperrt. Naja, kann man nix machen.
Lokal hat auf jeden Fall alles wunderbar geklappt >_<;;

Dennoch danke vielmals für all die guten Ideen!

muss ich also einen anderen webserver finden...
 
Zurück