Seiteninhalt einer anderen Seite auslesen

Was genau funktioniert denn nicht? Gibt es vielleicht eine Fehlermeldung? Wie sieht der Aufruf der Funktion und die Verarbeitung ihres Rückgabewerts aus?
 
Hallo,
ich hab jetzt mal ein wirklich einfaches Beispiel geschrieben.
PHP:
<?php
function prase_file($file){
$file = file_get_contents($file);
$ergebnis = preg_match('/<span id="test">(.*?)<\/span>/s', $file, $result);
return $result[1];
}
 
echo nl2br(prase_file('test.txt'));
?>
Das Beispiel öffnet die test.txt und liest alles, was zwischen <span id="test"></span> steht aus.
Das Beispiel funktioniert aber nur wenn allow_url_fopen in der php.ini aktiviert ist

mfg
forsterm
 
Zuletzt bearbeitet:
forsterm hat gesagt.:
Hallo,
ich hab jetzt mal ein wirklich einfaches Beispiel geschrieben.
PHP:
<?php
function prase_file($file){
$file = file_get_contents($file);
$ergebnis = preg_match('/<span id="test">(.*?)<\/span>/s', $file, $result);
return $result[1];
}
 
echo nl2br(prase_file('test.txt'));
?>
Das Beispiel öffnet die test.txt und liest alles, was zwischen <span id="test"></span> steht aus.
Das Beispiel funktioniert aber nur wenn allow_url_fopen in der php.ini aktiviert ist

mfg
forsterm

Das geht schon in die richtige richtung :) Nur ist die Seite keine .php und hat wohl diese Option gesperrt. Gibst ne möglichkeit das zu umgehen?
 
Gumbo hat gesagt.:
Ich hätte sonst noch eine vereinfachte Variante anzubieten:
PHP:
<?php

	function x_get_file_contents($filename)
	{

		if( empty($filename) || !$parts = parse_url($filename) ) {
			return null;
		}

		$allowedSchemes = array( 'http', 'https' );
		if( !empty($parts['scheme']) && in_array($parts['scheme'], $allowedSchemes) && !empty($parts['host']) ) {
			return remote_file_get_contents($filename);
		} else {
			return file_get_contents($filename);
		}

	}

	function remote_file_get_contents($filename)
	{

		if( empty($filename) || ($parts = parse_url($filename)) === false ) {
			return null;
		}

		if( empty($parts['port']) || $parts['port'] == 0 ) {
			switch( $parts['scheme'] ) {
				case 'https': $parts['port'] = 443;
					break;
				default: $parts['port'] = 80;
			}
		}
		if( empty($parts['path']) ) {
			$parts['path'] = '/';
		}
		$requestURI = $parts['path'];
		if( isset($parts['query']) && $parts['query'] != '' ) {
			$requestURI .= '?'.$parts['query'];
		}

		$request = "GET ".$requestURI." HTTP/1.1\r\nHost: ".$parts['host']."\r\n\r\n";
		$fp = fsockopen($parts['host'], $parts['port']);
		if( !$fp ) {
			return false;
		}
		fwrite($fp, $request);
		$contents = '';
		while( !feof($fp) ) {
			$contents .= fgets($fp, 128);
		}
		fclose($fp);
		return strchr($contents, chr(0x0D).chr(0x0A).chr(0x0D).chr(0x0A));

	}

	var_dump( x_get_file_contents('http://example.net/') );

?>

Ok, jetzt hab ich da unten die URL eingefügt. jetzt zeigt er mir die halb seite an (ohne grafik und CSS) wie krieg ich jetzt den teil, den ich speziell will, sprich wie krieg ich bestimmte abschnitte darraus?

Breuker
 
So, ein freund hat mir jetzt einen Hinweis gegeben, wie ich das machen, wie ich das möchte.
Ich danke euch trotzdem für eure Hilfe :)
 
Hallo,

gibt es auch eine entsprechende Möglichkeit, eine Seite mit POST-Parametern aufzurufen und den Quelltext auszulesen? Würde mich mal interessieren, ob da jemand weiter weiß.

MfG

DanielL
 
Zurück