curl_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_initИнициализирует сеанс cURL

Описание

resource curl_init ([ string $url = NULL ] )

Инициализирует новый сеанс cURL и возвращает дескриптор, который используется с функциями curl_setopt(), curl_exec() и curl_close().

Список параметров

url

Если указан, опция CURLOPT_URL будет автоматически установлена в значение этого аргумента. Вы можете вручную установить эту опцию с помощью функции curl_setopt().

Замечание:

Протокол file становится недоступным в cURL, если задана опция open_basedir.

Возвращаемые значения

Возвращает дескриптор cURL при удаче, и FALSE в случае ошибки.

Примеры

Пример #1 Инициализация нового сеанса cURL и загрузка web-страницы

<?php
// создание нового ресурса cURL
$ch curl_init();

// установка URL и других необходимых параметров
curl_setopt($chCURLOPT_URL"http://www.example.com/");
curl_setopt($chCURLOPT_HEADER0);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>

Смотрите также

Коментарии

Автор:
This may be obvious, but:

Note that is MUCH faster to use use a single instance to make a series of curl requests rather than creating a new instance for each request.
2023-04-13 22:40:16
http://php5.kiev.ua/manual/ru/function.curl-init.html
Автор:
NextgenThemes' note is applicable for very very limited situations. For completeness's sake, let's consider the following code snippet:

<?php

/*
Your localhost has a default Apache which simply returns "It works!"
*/

$repeatCount 1000;

// begin section
// this section is slow

// call localhost, create new handle each time
$time microtime(true);
foreach (
range(1$repeatCount) as $ignored) {
   
$ch curl_init("http://localhost");
   
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
   
$response curl_exec($ch);
   
// do something with the response
   
unset($response);
   
curl_close($ch);
}
unset(
$ch);
$elapsed microtime(true) - $time;
echo 
"Recreate curl handle, time taken: " $elapsed "\n";

// end section

// begin section
// this section is much faster

// call localhost, but reuse the handle
$time microtime(true);
$ch curl_init("http://localhost");
foreach (
range(1$repeatCount) as $ignored) {
   
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
   
$response curl_exec($ch);
   
// do something with the response
   
unset($response);
}
curl_close($ch);
$elapsed microtime(true) - $time;
echo 
"Reuse curl handle, time taken: " $elapsed "\n";

// end section

/*
Example output:
Recreate curl handle, time taken: 11.289301872253
Reuse curl handle, time taken: 0.53790807723999
*/

?>

The above code supports the claim by NextgenThemes, however the "send curl requests in sequence" method in general is unnecessarily slow because:
- network transfer time (e.g. 100ms)
- remote processing time (e.g. 50ms)
- usually, no need to send requests in specific sequence

So, in practice, when you need to send multiple curl requests at the same time, just use the curl_multi_init method. Don't consider the "send curl requests in sequence" method unless you have very very specific/special needs.
2023-11-15 15:52:56
http://php5.kiev.ua/manual/ru/function.curl-init.html

    Поддержать сайт на родительском проекте КГБ