cURL

Содержание

  • curl_close — Завершает сеанс cURL
  • curl_copy_handle — Копирует дескриптор cURL вместе со всеми его настройками
  • curl_errno — Возвращает код последней ошибки
  • curl_error — Возвращает строку с описанием последней ошибки текущего сеанса
  • curl_escape — URL encodes the given string
  • curl_exec — Выполняет запрос cURL
  • curl_file_create — Create a CURLFile object
  • curl_getinfo — Возвращает информацию об определенной операции
  • curl_init — Инициализирует сеанс cURL
  • curl_multi_add_handle — Добавляет обычный cURL дескриптор к набору cURL дескрипторов
  • curl_multi_close — Закрывает набор cURL дескрипторов
  • curl_multi_exec — Запускает под-соединения текущего дескриптора cURL
  • curl_multi_getcontent — Возвращает результат операции, если была установлена опция CURLOPT_RETURNTRANSFER
  • curl_multi_info_read — Возвращает информацию о текущих операциях
  • curl_multi_init — Создает набор cURL-дескрипторов
  • curl_multi_remove_handle — Удаляет cURL дескриптор из набора cURL дескрипторов
  • curl_multi_select — Ждет активности на любом curl_multi соединении
  • curl_multi_setopt — Set an option for the cURL multi handle
  • curl_multi_strerror — Return string describing error code
  • curl_pause — Pause and unpause a connection
  • curl_reset — Reset all options of a libcurl session handle
  • curl_setopt_array — Устанавливает несколько параметров для сеанса cURL
  • curl_setopt — Устанавливает параметр для сеанса CURL
  • curl_share_close — Close a cURL share handle
  • curl_share_init — Initialize a cURL share handle
  • curl_share_setopt — Set an option for a cURL share handle.
  • curl_strerror — Return string describing the given error code
  • curl_unescape — Decodes the given URL encoded string
  • curl_version — Возвращает версию cURL

Коментарии

It took me quite some to to figure out how to get Curl (with SSL), OpenSSL and PHP to play nicely together.

After reinstalling MS-VC7 and compiling OpenSSL to finally realise this was'nt nesscary.

If your like me and like *Nix systems more than Windows then you'll most probly have similar problems.

I came across this, on a simple google with the right keywords.

http://www.tonyspencer.com/journal/00000037.htm

I read thru that and found my mistake.

Its just a small list of notes, I found them to be the best I've found on the subject and the most simplist.

Dont forget to add a simple line like this into your scripts to get them working on Win32.

<?php
if($WINDIRcurl_setopt($curlCURLOPT_CAINFO"c:\\windows\\ca-bundle.crt");
?>

Last note: ca-bundle.crt file is located in the Curl download. I stored mine in the windows directory and apache/php can access it fine.

All the best and I hope this helps.

Simon Lightfoot
vHost Direct Limited
2004-03-03 18:53:41
http://php5.kiev.ua/manual/ru/ref.curl.html
In recent versions of php, CURLOPT_MUTE has (probably) been deprecated. Any attempt of using curl_setopt() to set CURLOPT_MUTE will give you a warning like this:

PHP Notice:  Use of undefined constant CURLOPT_MUTE - assumed 'CURLOPT_MUTE' in ....

If you wish tu silence the curl output, use the following instead:

<?php
    curl_setopt
($chCURLOPT_RETURNTRANSFERtrue);
?>

And then,

<?php
    $curl_output
=curl_exec($ch);
?>

The output of the curl operation will be stored as a string in $curl_output while the operation remains totally silent.
2004-09-14 05:31:13
http://php5.kiev.ua/manual/ru/ref.curl.html
A note of warning for PHP 5 users: if you try to fetch the CURLINFO_CONTENT_TYPE using curl_getinfo when there is a connect error, you will core dump PHP. I have informed the Curl team about this, so it will hopefully be fixed soon. Just make sure you check for an error before you look for this data.
2004-10-14 16:11:07
http://php5.kiev.ua/manual/ru/ref.curl.html
Beware of any extra spaces in the URL.  A trailing space in the URL caused my script to fail with the message "empty reply from server".
2006-03-02 18:21:16
http://php5.kiev.ua/manual/ru/ref.curl.html
For anyone trying to use cURL to submit to an ASP/ASPX page that uses an image as the submit button.

Make sure that you have 'button_name.x' and 'button_name.y' in the post fields. PHP names these fields 'button_name_x' and 'button_name_y', while ASP uses a dot.

Also, as noted above, be sure to include the '__VIEWSTATE' input field in your post request.
2007-03-06 13:23:15
http://php5.kiev.ua/manual/ru/ref.curl.html
Автор:
Don't foget to curl_close($ch); Even if curl_errno($ch) != 0

Because if you don't - on Windows this will produce windows-error-report (Program terminated unexpectedly)
2007-07-07 09:59:18
http://php5.kiev.ua/manual/ru/ref.curl.html
Автор:
Although it has been noted that cURL outperforms both file_get_contents and fopen when it comes to getting a file over a HTTP link, the disadvantage of cURL is that it has no way of only reading a part of a page at a time.

For example, the following code is likely to generate a memory limit error:

<?php
$ch 
curl_init("http://www.example.com/reallybigfile.tar.gz");
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_BINARYTRANSFERtrue);
$output curl_exec($ch);

$fh fopen("out.tar.gz"'w');
fwrite($fh$output);
fclose($fh);
?>

While this, on the other hand, wouldn't

<?php
$hostfile 
fopen("http://www.example.com/reallybigfile.tar.gz"'r');
$fh fopen("out.tar.gz"'w');

while (!
feof($hostfile)) {
   
$output fread($hostfile8192);
   
fwrite($fh$output);
}
   
fclose($hostfile);
fclose($fh);
?>
2008-05-02 22:44:23
http://php5.kiev.ua/manual/ru/ref.curl.html
This is sample script to use curl, Just input curl_setopt,
exp : 
curlsetop[0] ==> name : CURLOPT_URL ; value : http://amazon.com
curlsetop[1] ==> name : CURLOPT_RETURNTRANSFER ; value : true
curlsetop[2] ==> name : CURLOPT_FOLLOWLOCATION ; value : true

You can add form input.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="">
  <meta name="Author" content="Helmi Anwar">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
 </head>

 <body>

 <form method="post" action="">
    <table>
    <tr class="rowid_add">
        <td>curl_setopt [0]</td>
        <td>Name : <input type="text" size="50" name="setopt_name[]"></td>
        <td>Value :<input type="text" size="50" name="setopt_value[]"></td>
    </tr>
    <tr class="rowid_add">
        <td>curl_setopt [0]</td>
        <td>Name : <input type="text" size="50" name="setopt_name[]"></td>
        <td>Value :<input type="text" size="50" name="setopt_value[]"></td>
    </tr>
        <tr class="rowid_add">
        <td>curl_setopt [0]</td>
        <td>Name : <input type="text" size="50" name="setopt_name[]"></td>
        <td>Value :<input type="text" size="50" name="setopt_value[]"></td>
    </tr>
    <tr>
        <td><input type="submit" name="submit_yes" value="EXECUTE"></td>
    </tr>
    </table>
 </form>

 
 <?php

   
function curl_test($setopt_content)
    {
       
$ch curl_init();
       
curl_setopt_array($ch$setopt_content);
       
$result_data curl_exec($ch);
       
curl_close($ch);
        return 
$result_data;
    }

if(
$_REQUEST['submit_yes']=="EXECUTE")
{
   
    foreach (
$_REQUEST['setopt_name'] as $k => $index_content
    {   
       
$value_content=$_REQUEST['setopt_value'][$k];
       
$index_content =strtoupper($index_content);
        eval(
'$index_content = '.$index_content.';');
       
//echo ($index_content);
       
if($index_content!='')
        {
            if(
strtoupper($value_content)=='TRUE')
            {
$setopt_content[$index_content]=TRUE;}
            elseif(
strtoupper($value_content)=='FALSE')
            {
$setopt_content[$index_content]=FALSE;}
            else
            {
$setopt_content[$index_content]=$value_content;}
        }
    }

   
$info=curl_test($setopt_content);

}

 
?>
 <textarea name="result" rows="25" cols="100"><?php echo htmlspecialchars($info);?></textarea>
 </body>
</html>
2014-05-11 13:03:35
http://php5.kiev.ua/manual/ru/ref.curl.html
This is sample script to use curl, Just input curl_setopt,
exp :
curlsetop[0] ==> name : CURLOPT_URL ; value : https://amzn.to/3njlWW6     
curlsetop[1] ==> name : CURLOPT_RETURNTRANSFER ; value : true
curlsetop[2] ==> name : CURLOPT_FOLLOWLOCATION ; value : true

You can add form input.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title> New Document </title>
  <meta name="Generator" content="">
  <meta name="Author" content="Helmi Anwar">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
</head>

<body>

<form method="post" action="">
    <table>
    <tr class="rowid_add">
        <td>curl_setopt [0]</td>
        <td>Name : <input type="text" size="50" name="setopt_name[]"></td>
        <td>Value :<input type="text" size="50" name="setopt_value[]"></td>
    </tr>
    <tr class="rowid_add">
        <td>curl_setopt [0]</td>
        <td>Name : <input type="text" size="50" name="setopt_name[]"></td>
        <td>Value :<input type="text" size="50" name="setopt_value[]"></td>
    </tr>
        <tr class="rowid_add">
        <td>curl_setopt [0]</td>
        <td>Name : <input type="text" size="50" name="setopt_name[]"></td>
        <td>Value :<input type="text" size="50" name="setopt_value[]"></td>
    </tr>
    <tr>
        <td><input type="submit" name="submit_yes" value="EXECUTE"></td>
    </tr>
    </table>
</form>

<?php

   
function curl_test($setopt_content)
    {
       
$ch curl_init();
       
curl_setopt_array($ch$setopt_content);
       
$result_data curl_exec($ch);
       
curl_close($ch);
        return 
$result_data;
    }

if(
$_REQUEST['submit_yes']=="EXECUTE")
{
   
    foreach (
$_REQUEST['setopt_name'] as $k => $index_content)
    {   
       
$value_content=$_REQUEST['setopt_value'][$k];
       
$index_content =strtoupper($index_content);
        eval(
'$index_content = '.$index_content.';');
       
//echo ($index_content);
       
if($index_content!='')
        {
            if(
strtoupper($value_content)=='TRUE')
            {
$setopt_content[$index_content]=TRUE;}
            elseif(
strtoupper($value_content)=='FALSE')
            {
$setopt_content[$index_content]=FALSE;}
            else
            {
$setopt_content[$index_content]=$value_content;}
        }
    }

   
$info=curl_test($setopt_content);

}

?>
<textarea name="result" rows="25" cols="100"><?php echo htmlspecialchars($info);?></textarea>
</body>
</html>
2021-02-14 20:13:29
http://php5.kiev.ua/manual/ru/ref.curl.html
Автор:
Note, if you will ever need to get/set unique handle for Curl-object, you might need to use CURL_PRIVATE property for each instace
https://www.php.net/manual/en/function.curl-setopt.php
2021-06-06 23:06:43
http://php5.kiev.ua/manual/ru/ref.curl.html

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