Speichern der Datei mit Curl und PHP

Lesezeit: 2 Minuten

Wie kann ich eine Datei mit Curl und PHP speichern?

  • bist du sicher, dass du curl brauchst? ist file_get_contents(“was auch immer.com”) nicht genug?

    – Jonathan Finland

    17. Juni 2009 um 12:12 Uhr

  • Ich bin mir sicher, dass über 50 % der 14.000 Aufrufe das nicht gefunden haben file_get_contents war genug

    – duftend

    13. März 2015 um 21:53 Uhr

Speichern der Datei mit Curl und PHP
Haim Evgi

wolltest du sowas?

function get_file($file, $local_path, $newfilename) 
{ 
    $err_msg = ''; 
    echo "<br>Attempting message download for $file<br>"; 
    $out = fopen($local_path.$newfilename,"wb");
    if ($out == FALSE){ 
      print "File not opened<br>"; 
      exit; 
    } 

    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_FILE, $out); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_URL, $file); 

    curl_exec($ch); 
    echo "<br>Error is : ".curl_error ( $ch); 

    curl_close($ch); 
    //fclose($handle); 

}//end function 

Funktionalität: Es ist eine Funktion und akzeptiert drei Parameter

get_file($file, $local_path, $newfilename)

$file : ist der Dateiname des abzurufenden Objekts

$local_path : ist der lokale Pfad zu dem Verzeichnis, in dem das Objekt gespeichert wird

$newfilename : ist der neue Dateiname auf dem lokalen System

Sie können Folgendes verwenden:

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
$out = curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);


$fp = fopen('data.txt', 'w');
fwrite($fp, $out);
fclose($fp);

?>

Sehen: http://jp2.php.net/manual/en/function.curl-exec.php
und http://us3.php.net/manual/en/function.fwrite.php

  • Dies erledigt die Aufgabe für kleine Dateien, aber es lädt die gesamte Datei vor dem Speichern in den Speicher, und daher werden Sie wahrscheinlich schwerwiegende Fehler „nicht genügend Speicher“ bekommen, wenn die Datei größer als das Speicherlimit von PHP ist. Die Antwort von Haim Evgi streamt die Datei korrekt auf die Festplatte, wodurch dieses Problem vermieden wird.

    – Simon Osten

    31. März 2014 um 4:15 Uhr

  • ich curl_exec direkt in file_put_contents(). Es spart mindestens 3 Zeilen Code.

    – Pmagunie

    24. November 2014 um 1:32 Uhr

Speichern der Datei mit Curl und PHP
Rangalo

Ich denke, curl hat die Option -o, um die Ausgabe in eine Datei anstelle von stdout zu schreiben.

Nach -o müssen Sie den Namen der Ausgabedatei angeben.

Beispiel:


curl -o path_to_the_file url

  • Dies ist für die Befehlszeile Version von curl, aber nicht die PHP-Curl-Bibliothek.

    – Simon Osten

    31. März 2014 um 4:11 Uhr

997220cookie-checkSpeichern der Datei mit Curl und PHP

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy