Auslesen einer fremden Website



  • Ich bin bei funpic.de. Ich möchte eine fremde website auf einem anderne Server auslsesen. hab dafür immer mit php fsockopen() benutzt und eine HTTP anfrage an den server geschickt und die antwort ausgelsen, da man per file() keine websites über http auslesen kann.
    nun ist jedoch auch fsockopen deaktivert worden, was mich vor das problem stellt:
    wie lese ich eine website aus?
    idee: ich benutzt einfach java... problem: da motzt er mir rum, ich könne nur auf den selben host zugreifen, von dem das java stammt... supi
    idee: ich benutzt flash... problem: das scheint garnicht möglich zu sein, mit flash eine website auszulesen, außer wenn sie in einem bestimmten format vorliegt... -.-
    idee: ich erstelle in php script das sich bei lycos als js-datei ausgibt und per header("text/plain"); so tut als wäre es eine plain-text datei und somit von der werbung verschont bleibt... problem: so schlau waren die lycos leute selber...

    Nun an euch:
    wie kann isch das am einfachsten, besten machen?
    oder muss ich mir noch irgendwo weitern webspace registreiren, auf dem fsockopen aktiviert ist?
    wenn jah, mag mir einer vernüfntigen, werbefreien und kostenlosen webspace mit php unterstützung empfehlen?



  • Geht es dir beim Auslesen lediglich um den Quelltext der jeweiligen Website, oder willst du die zum Beispiel zum offline-browsen ziehen?



  • Es reicht mir das Auslesen des Quelltextes einer fremden Seite...



  • Normalerweise sollte das auch direkt mit file() bzw. file_get_contents() in PHP gehen - aber wenn du das schon erfolglos ausprobiert hast 🙄



  • jo, eigentlich schon, geht aber für http und ftp adressen leider nicht



  • Falls du noch keine Lösung gefunden hast:

    class:
    <?php
    # ================================ Copyright © 2005-2006 iNetopia, All rights reserved. ==========================
    # 
    #
    # Purpose:
    # ================================================================================================================
    
    # -[ defines ]-
    
    # -[ objectlist ] -
    
    # -[ class ] -
    class CDownload
    {
    	# -[ variables ]-
    	var $iPackageSize	= 4096;		# 4 KB
    	var $Buffer			= NULL;
    	# -[ functions ]-
    
    	# =========================================================================
    	# PUBLIC
    	# =========================================================================
    
    	//-------------------------------------------------------------------------------
    	// Purpose: constructor
    	// Output : -
    	//-------------------------------------------------------------------------------
    	function CDownload ()
    	{
    	}
    
    	function SetPackageSize( $p_s )
    	{
    		$this->iPackageSize = $p_s;
    	}
    
    	function Start( $source_file, $dest_file )
    	{
    		if( !($hRes = fopen( $source_file, 'rb' )))
    		{
    			return 0;
    		}
    		$this->Buffer = NULL;
    
    		# start downloading
    		do 
    		{
    			$TempBuffer = fread( $hRes, $this->iPackageSize );
    			$this->Buffer .= $TempBuffer;
    
    		}while( strlen($TempBuffer) > 0 );
    
    		echo $this->Buffer;
    	}
    };
    
    ?>
    
    download.php
    <?php
    
    $file= "http://www.gmx.de/";
    
    include( "download.class.php");
    
    $cDownload = new CDownload();
    
    $cDownload->SetPackageSize( 40000 );
    $cDownload->Start( $file, "" );
    ?>
    

  • Mod

    Cenetix schrieb:

    Falls du noch keine Lösung gefunden hast:

    Klar, wenn fopen_wrapper bei file und file_get_contents deaktiviert ist, wird er bei fopen aktiviert sein...?

    davon abgesehen ist der code nicht besonders schön. wozu braucht man dafür eine klasse?

    ausserdem sind die PHP streams selber gepuffert, du musst das also nicht selber machen 😉



  • Jo, fopen() geht natürlich auch nicht .

    ich habs jetzt mit ner mischung aus php und javascript und einem zweiten server gemacht 🙂


Anmelden zum Antworten