kostenloser Webspace werbefrei: lima-city


mit curl nur die ersten 1024 Bytes auslesen ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    gamesfun

    gamesfun hat kostenlosen Webspace.

    Hallo

    kann man mit curl eine ref="/tag/datei">Datei auch nur bis zu einer bestimmten "Länge" (Zeichen / Bytes) auslesen ??

    also quasi sowas wie bei fread() und $length Parameter ... z.B. nur 1024 Byte auslesen
    function file_part_fread ($url, $length=1024) { 
    	
    	$handle = fopen($url, 'r');
    	$content = fread($handle, $length);
    	fclose($handle);
    
    	return $content; 
    }



    wie geht das mit curl (wenn es überhaupt geht) ? ... wo / wie müsste ich da $length einbauen ?
    function file_part_curl ($url, $length=1024) { 
    
    	$ch = curl_init($url);
    	curl_setopt ($ch, CURLOPT_URL, $url);
    	curl_setopt ($ch, CURLOPT_HEADER, 0);
    	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    	$result = curl_exec ($ch);
    	curl_close ($ch);
    
    	return $result;
    }


    WIe kann ich mit curl aus einer Datei nur die ersten z.B. 1024 Bytes auslesen ?
    ... geht das überhaupt mit curl ?

    Danke.

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. gamesfun schrieb:
    ... wie geht das mit curl (wenn es überhaupt geht) ? ... wo / wie müsste ich da $length einbauen ?
    function file_part_curl ($url, $length=1024) { 
    
    	$ch = curl_init($url);
    	curl_setopt ($ch, CURLOPT_URL, $url);
    	curl_setopt ($ch, CURLOPT_HEADER, 0);
    	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    	$result = curl_exec ($ch);
    	curl_close ($ch);
    
    	return $result;
    }


    mit
    curl_setopt($ch, CURLOPT_RANGE, "0-1024");
  4. Autor dieses Themas

    gamesfun

    gamesfun hat kostenlosen Webspace.

    hmmmm

    leider funktioniert CURLOPT_RANGE nicht ?!?
    ... es wird immer der komplette Inhalt der $url ausgelesen,


    <?php
    // ------------------------------------------------------------------ 
    
    function curl_get_contents($url,$len=0) { 
    	
    	$data = '';
    	
    	$ch = curl_init();
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    	curl_setopt($ch, CURLOPT_URL, $url);
    	curl_setopt($ch, CURLOPT_HEADER, 0);
    	curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    	
    	if (!empty($len)) { 
    	$range = '"0-'.$len.'"'; 
    	curl_setopt($ch, CURLOPT_RANGE, $range);
    	}
    	
    	$res = curl_exec($ch);
    
    	curl_close($ch);
    	
    	return $res;
    }
    
    // ------------------------------------------------------------------ 
    
    $result_data = curl_get_contents($url,1024); 
    
    $debug_data = htmlentities($result_data); 
    
    print "<pre>\n"; 
    print_r($debug_data);
    print "</pre>\n"; 
    
    // ------------------------------------------------------------------ 
    ?>



    wenn ich mir dazu auch
    curl_getinfo($ch);
    ausgeben lasse,
    dann bekomme ich u.a. als Werte:

    [size_download] => 161211
    [download_content_length] => 0


    ich will aber nur die ersten (z.B. 1024 Bytes) auslesen,
    aber size_download ist deutlich größer ?!?
    und warum ist download_content_length = 0 ..... ?????
    ... ich habe doch im Ergebnis den Content der URL ?!? ... ohne header

    genauere Problem Beschreibung:

    + Ich habe einen Webspace, bei dem allow_url_fopen = off aber curl = enabled
    + Ich will aus einer externen URL nur die ersten paar Zeichen / Bytes auslesen

    PHP Version = 5.3.14
    cURL Information = 7.15.5


    Ist es vielleich möglich, curl abzubrechen, ab dem Vorkommen eines bestimmten (Teil-) String ?
    also z.B. sobald im $res der (Teil-) String
    <!-- ENDE -->
    vorkommt, dann curl beenden ?

    oder Zeilen-Weise einlesen, und ab z.B. Zeile 10 abbrechen ?

    Warum funktioniert CURLOPT_RANGE nicht,
    gibt es noch andere Möglichkeit bei curl nur die ersten 1024 Bytes auszulesen?

    EDIT: .... in anderen Foren gefunden
    If the remote host does not support Range headers, it doesn't matter what you do: you won't be able to download a specific range.


    hmmm , naja, schade ...
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    gamesfun schrieb:
    $range = '"0-'.$len.'"'; 
    curl_setopt($ch, CURLOPT_RANGE, $range);
    Woher kommen die
    "
    ? Das sollte eher so aussehen:
    $range = "0-$len"; 
    curl_setopt($ch, CURLOPT_RANGE, $range);
  6. Autor dieses Themas

    gamesfun

    gamesfun hat kostenlosen Webspace.

    hallo

    ich glaub das ist egal, ob da steht
    curl_setopt($ch, CURLOPT_RANGE, 0-1024);

    oder
    curl_setopt($ch, CURLOPT_RANGE, "0-1024");

    oder
    curl_setopt($ch, CURLOPT_RANGE, '0-1024');


    habe Beispiele mal so und mal so gefunden

    alles ausprobiert, in
    "
    und in
    '
    und auch ohne
    aber bisher ging es nie
    die meisten (remote-) Hosts akzeptieren wohl diesen Range header nicht :(

    .. dann muss ich wohl doch immer den kompletten Inhalt auslesen
  7. gamesfun schrieb:
    ... dann muss ich wohl doch immer den kompletten Inhalt auslesen
    glaube ich kaum! wenn ich das
    <?php
    error_reporting(E_ALL | E_STRICT);
    
    echo file_part_curl ("http://www.nytimes.com/", 2048);
    
    function file_part_curl ($url, $length=1024) {
     
        $ch = curl_init($url);
        curl_setopt ($ch, CURLOPT_URL, $url);
        curl_setopt ($ch, CURLOPT_HEADER, 0);
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_RANGE, "0-$length");
        $result = curl_exec ($ch);
        curl_close ($ch);
     
        return $result;
    }
    von lima aus ausführe, bekomme ich das hier
    <!DOCTYPE html>
    <!--[if IE]><![endif]--> 
    <html lang="en">
    <head>
    <title>The New York Times - Breaking News, World News &amp; Multimedia</title>
    <meta name="robots" content="noarchive,noodp,noydir">
    <meta name="description" content="Find breaking news, multimedia, reviews &amp; opinion on Washington, business, sports, movies, travel, books, jobs, education, real estate, cars &amp; more.">
    <meta name="keywords" content="McConnell, Mitch,Federal Budget (US),Federal Taxes (US),Reid, Harry,United States Economy,Senate,United States Politics and Government,Obama, Barack,Murders and Attempted Murders,Queens (NYC),Subways,Demonstrations, Protests, and Riots,New Delhi (India),Russia,Middle East and North Africa Unrest (2010- ),Lavrov, Sergey V,Assad, Bashar al-,Syria,Amish,Ohio,Beards and Mustaches,Decisions and Verdicts,Mullet, Samuel Sr,Hate Crimes,Bangladesh,Tazreen Fashions,Accidents and Safety,Wal-Mart Stores Inc,Fashion and Apparel,Factories and Manufacturing,Blume, Judy,Books and Literature,Teenagers and Adolescence,Real Estate and Housing (Residential),Fisher Island (Fla),Football (College),University of Massachusetts,National Collegiate Athletic Assn,Income Tax,Constitutional Council (France),Hollande, Francois,Budgets and Budgeting,Ayrault, Jean-Marc,France,Metcalf, Laurie,Theater,Actors and Actresses">
    <meta name="CG" content="Homepage">
    <meta name="SCG" content="">
    <meta name="PT" content="Homepage">
    <meta name="PST" content="">
    <meta name="HOMEPAGE_TEMPLATE_VERSION" content="300">
    <meta name="application-name" content="The New York Times" />
    <meta name="msapplication-starturl" content="http://www.nytimes.com/" />
    <meta name="msapplication-task" content="name=Search;action-uri=http://query.nytimes.com/search/sitesearch?src=iepin;icon-uri=http://css.nyt.com/images/icons/search.ico" />
    <meta name="msapplication-task" content="name=Most Popular;action-uri=http://www.nytimes.com/gst/mostpopular.html?src=iepin;icon-uri=http://css.nyt.com/images/icons/mostpopular.ico" />
    <meta name="msapplication-task" content="name
    und ich habe noch etliche adressen abgeklappert. hast du error_reporting in deinem code? fehlermeldung????
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!