PHP Externe seite öffnen und HTML Code auslesen

Diskutiere PHP Externe seite öffnen und HTML Code auslesen im Developer Network Forum im Bereich Hardware & Software Forum; Hey, möchte mit PHP eine Externe Seite wie z.b. http://golem.de aufrufen und den HTML Code auslesen und danach analysieren. Ich habe auch schon...
  • PHP Externe seite öffnen und HTML Code auslesen Beitrag #1
A

Airfighter76

Bekanntes Mitglied
Dabei seit
01.04.2009
Beiträge
268
Reaktionspunkte
0
Hey,
möchte mit PHP eine Externe Seite wie z.b. http://golem.de aufrufen und den HTML Code auslesen und danach analysieren. Ich habe auch schon alles fertiggetippt und mit xampp getestet und es funktioniert, solange die zu analysierende Seite auf dem Server selber gespeichert ist funktioniert es. Aber wenn es eine andere Seite ist funktioniert nicht, hab schon im php manual nachgelesen wie es gehen soll, hab sogar ihren beispielcode ausprobiert, aber geht nicht. Dann hab ich gelesen, dass ich was in der php.ini umstellen muss, hat aber auch nicht so recht funktioniert. Könnt ihr mir evtl. helfen? Evtl. hab ich auch nur was falsches in der php.ini umgestellt, oder es ist was anderes. Hier mal ein ausschnitt, aus dem Code, der funktioniert.
Code:
<?php
$url = "http://localhost/Schule/o/hello.php";
$file = fopen($url, "r");
echo $file;
while(!feof($file))
	echo fgets($file, 4096);

fclose($file);
?>
 
Zuletzt bearbeitet:
  • PHP Externe seite öffnen und HTML Code auslesen Beitrag #2
fox99

fox99

Bekanntes Mitglied
Dabei seit
27.11.1999
Beiträge
3.948
Reaktionspunkte
27
Ort
Omicron Persei 8
Hast du irgendwleche fehlermeldungen?

was hast du in der php.ini geändert? (von welchem wert auf welchen?)
hast du den webserver nach den änderungen neu gestartet?
 
  • PHP Externe seite öffnen und HTML Code auslesen Beitrag #4
S

Stefan

Guest
Ich habe das Problem auch mal gehabt, ich wollte in einer Datei etwas ersetzen, und dann die geänderte Datei weiterschicken.

Hier mein Quellcode der entsprechenden Funktion:
PHP:
	function replace_some_content($url, $search, $replace)
	{
		$host = substr($url, strpos($url, '//', 0) + 2, strpos($url, '/', 8) - strpos($url, '//', 0) - 2);
		$socket = fsockopen($host, 80);
		$out = "GET " . substr($url, strpos($url, '/', 8)) . " HTTP/1.1\r\n";
		$out .= "Host: " . $host . "\r\n";
		$out .= "Connection: Close\r\n\r\n";
		fwrite($socket, $out);
		$header = true;
		while (!feof($socket))
		{
			$line = fgets($socket, 1024);
			if($header)
			{
				if($line == "\r\n")
					$header = false;
				elseif(strpos($line, 'Content-Length:') === false)
					header($line);
			}
			else
			{
				echo str_replace($search, $replace, $line);
			}
		}
		fclose($socket);
	}
Funktioniert gut bis auf irgendeine kleine Ausnahme, irgendein Spezialfall der mir grad spontan nicht mehr einfallen will.

Freundliche Grüße

Stefan
 
  • PHP Externe seite öffnen und HTML Code auslesen Beitrag #5
fox99

fox99

Bekanntes Mitglied
Dabei seit
27.11.1999
Beiträge
3.948
Reaktionspunkte
27
Ort
Omicron Persei 8
wieso wollt ihr die http-anfrage von hand machen, wenn es den url-wrapper für fopen oder curl gibt?

Funktioniert gut bis auf irgendeine kleine Ausnahme, irgendein Spezialfall der mir grad spontan nicht mehr einfallen will.

wenn beim statuscode 3XX zurückgegeben wird vielleicht? oder beim transfer-encoding chunked?
 
Zuletzt bearbeitet:
  • PHP Externe seite öffnen und HTML Code auslesen Beitrag #6
S

Stefan

Guest
Ich habs halt damals einfach so gemacht und bisher läufts :) Ich bin offen für bessere Lösungen.
 
  • PHP Externe seite öffnen und HTML Code auslesen Beitrag #7
H

hannesp

Mitglied
Dabei seit
23.01.2014
Beiträge
12
Reaktionspunkte
0
Du musst url file access zulassen (allow_url_fopen = On in der php.ini)
Wenn du das schon gemacht hast und es nicht geht: Haste denn schon den Webserver neu gestartet, damit die PHP Config auch neu eingelesen wird?
 
Thema:

PHP Externe seite öffnen und HTML Code auslesen

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.170
Mitglieder
55.872
Neuestes Mitglied
fabi3110
Oben