curl_init() has undefined behavior if you pass 'false' to it and can crash when you try to copy the resulting handle using curl_copy_handle(). Keep this in mind if you create a wrapper object for CURL.
curl_init
(PHP 4 >= 4.0.2, PHP 5)
curl_init — Eine cURL-Session initialisieren
Beschreibung
resource curl_init
([ string
$url = NULL
] )Initialisiert eine neue cURL-Session und gibt einen cURL-Handler zurück, der mit den curl_setopt(), curl_exec(), und curl_close() Funktionen genutzt werden kann.
Parameter-Liste
-
url -
Sofern angegeben wird die Option
CURLOPT_URLmit dem entsprechenden Wert initialisiert. Diese Option kann auch manuell per curl_setopt() gesetzt werden.Hinweis:
Das file Protokoll wird von cURL deaktiviert, wenn open_basedir gesetzt ist.
Rückgabewerte
Gibt ein cURL-Handle im Erfolgsfall zurück, FALSE im Fehlerfall.
Beispiele
Beispiel #1 Abrufen einer Webseite
<?php
// erzeuge einen neuen cURL-Handle
$ch = curl_init();
// setze die URL und andere Optionen
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
// führe die Aktion aus und gebe die Daten an den Browser weiter
curl_exec($ch);
// schließe den cURL-Handle und gebe die Systemresourcen frei
curl_close($ch);
?>
Siehe auch
- curl_close() - Eine cURL-Session beenden
- curl_multi_init() - Gibt einen cURL-Multi-Handle zurück
ezyang at php dot net ¶
5 years ago
José Enrique Serrano Expósito ¶
8 years ago
<?php
vWritePageToFile( 'http://es.php.net', 'es.php.net.txt' );
?>
... And the text file stand in the server in the same folder that the script.
This is the function code.-
<?php
function vWritePageToFile( $sHTMLpage, $sTxtfile ) {
$sh = curl_init( $sHTMLpage );
$hFile = FOpen( $sTxtfile, 'w' );
curl_setopt( $sh, CURLOPT_FILE, $hFile );
curl_setopt( $sh, CURLOPT_HEADER, 0 );
curl_exec ( $sh );
$sAverageSpeedDownload = curl_getInfo( $sh, CURLINFO_SPEED_DOWNLOAD );
$sAverageSpeedUpload = curl_getInfo( $sh, CURLINFO_SPEED_UPLOAD );
echo '<pre>';
echo 'Average speed download == ' . $sAverageSpeedDownload . '<br>';
echo 'Average Speed upload == ' . $sAverageSpeedUpload . '<br>';
echo '<br>';
$aCURLinfo = curl_getInfo( $sh );
print_r( $aCURLinfo );
echo '</pre>';
curl_close( $sh );
FClose ( $hFile );
echo '(<b>See the file "'.$sTxtfile.'" in the same path of the hosting'.
' to where this script PHP</b>).<br>';
}
?>
darkstar_ae at hotmail dot com ¶
6 years ago
For some reason on some webservers it may not be able to understand what cURL is doing. If you're getting unexpected results (like getting no output when the URL is valid) while using curl_init(). Add a trailing slash '/' after the url if you haven't done so already.
jharris at et2brut dot us ¶
2 years ago
Just to clarify:
Spaces in the URL need to be replaced with a %20.
Spaces in the querystring need to be replaced with a +
rossixx at gmx dot net ¶
5 years ago
e.g. you can check how many characters are on test_1.php
or you can it use for more, i have used this function for a nagios check.
<?PHP
echo "CURL - function test <br>" ;
if ($load == 1){
function webcheck ($url) {
$ch = curl_init ($url) ;
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ;
$res = curl_exec ($ch) ;
curl_close ($ch) ;
return ($res) ;
}
echo "url = $url <br>" ;
$erg = webcheck("my_page.php/test_1.php") ;
$zahl = strlen ($erg) ;
echo "length = $zahl " ;
?>
Brett ¶
3 years ago
Be careful when using spaces in the URL... make sure to replace them with + signs, otherwise it won't work.
z3n71n3l ¶
3 months ago
need not say more, rtm
http://php.net/manual/en/function.htmlspecialchars.php
james at mettro dot com dot au ¶
2 years ago
Someone mentioned you may need to replace spaces with +.
This didn't work for me, I had to replace them with %20, eg:
<?php $url = str_replace(' ', '%20', $url); ?>
