cURL İşlevleri

İçindekiler

add a note

User Contributed Notes 10 notes

up
27
Mr.KTO
18 years ago
Don't foget to curl_close($ch); Even if curl_errno($ch) != 0Because if you don't - on Windows this will produce windows-error-report (Program terminated unexpectedly)
up
6
helmizz at yahoo dot com
11 years ago
This is sample script to use curl, Just input curl_setopt,exp : curlsetop[0] ==> name : CURLOPT_URL ; value : http://amazon.comcurlsetop[1] ==> name : CURLOPT_RETURNTRANSFER ; value : truecurlsetop[2] ==> name : CURLOPT_FOLLOWLOCATION ; value : trueYou 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>
up
2
Anonymous
4 years ago
Note, if you will ever need to get/set unique handle for Curl-object, you might need to use CURL_PRIVATE property for each instacehttps://www.php.net/manual/en/function.curl-setopt.php
up
3
simon [at] vhostdirect [dot] co [dot] uk
21 years ago
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.htmI 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.<?phpif($WINDIR) curl_setopt($curl, CURLOPT_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 LightfootvHost Direct Limited
up
3
mikeb[at]xamo[dot]com
20 years ago
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.
up
1
killermonk at REMOVE dot killermonk dot com
18 years ago
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.
up
0
Peter X.
17 years ago
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($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);$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($hostfile, 8192);    fwrite($fh, $output);}    fclose($hostfile);fclose($fh);?>
up
-3
alidrus at langkah dot com
20 years ago
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($ch, CURLOPT_RETURNTRANSFER, true);
?>

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.
up
-4
richardkmiller AT gmail
19 years ago
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".
up
-3
ciaoandriana8 at gmail dot com
4 years ago
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 : truecurlsetop[2] ==> name : CURLOPT_FOLLOWLOCATION ; value : trueYou 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>
To Top