![]() |
|
Customer Support
The PHP curl module doesn't work.
First make sure that you have the CURL php module loaded.With the CURL module properly loaded, it can behave slightly differently when PHP is running as a cgi than it does when PHP is running as an Apache module.
If the curl script tries to fopen() a file in a directory that is not writable by the curl script, then the curl script will print the curl'ed page to the browser instead.
This means that when running the module version of PHP where scripts run with the permissions of the webserver, it is likely that the webserver may not have write permission in your directory where curl's fopen() is trying to plant a file. The result is that the file gets printed to the browser (which may be what you want).
This will rarely happen with the cgi version because PHP scripts in cgi mode execute with your permissions, and you almost always have write permission in your own directories. Therefore, the curl script will succeed at fopen() and so nothing will be printed to the browser.
If you want the cgi version of PHP to behave like the module version (printing the file to the browser) then just do:
fpassthru ($fp);after the place where your code uses fopen() and saves the result as $fp
Following the above instruction, the following code will work exactly the same no matter if PHP is being run as a module or as a cgi:
<?php
$sapi = php_sapi_name();
echo "SAPI: $sapi <br>";
$ch = curl_init("http://www.unix.org/");
$fp = fopen("superprivate_$sapi.txt", "w");
fpassthru ($fp);
// that line makes cgi act like module
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
$curl_exec = curl_exec($ch);
curl_close($ch);
fclose($fp);
echo "curl_exec: $curl_exec";
?>
User-Contributed Notes |
|
| There are no user-contributed notes for this topic. |
Related Questions:
How do I set PHP include_path?
How do I change timezone for PHP?
What PHP modules are available and how do I load them?
Can I run a PHP script on cron?
How do I do html form file uploads?
Why does a PHP function give an error that it is undefined?
Why does my PHP script throw an Internal Server Error 500?
Why does PHP HTTP authentication not work?
What version of PHP are you running and can I see a phpinfo()?
I can't upload a file larger than 8MB through a PHP script
Can you change session cookie timeout in php.ini for me?
Do you have a quick form mail script?
Where is the php_error_log?
Can I use a PHP extension like PDFlib that I have personally purchased a license to use?
How do I get different character sets within my PHP page to display correctly?
What's the difference between running PHP as a cgi or as a module in safe mode?
Do you offer PHP5 with MySQLi?
Can I have all .html pages parsed as PHP?
My PHP session is lost whenever I go to a secure URL using the shared SSL certificate.
Where can I download free PHP scripts?
Do you provide PEAR?
Do I need to set any 777 permissions in order for my PHP scripts to create files and directories?
What is CAPTCHA? How can I use it?
How do I execute my .php files as PHP 5?
How do I use the url_rewriter.tags setting for PHP?
The PDFlib extension gives a UPR description error.
Can I use Smarty Templates?
Why does flush() not flush the data to my browser?
Why does PHPLIB sessions give me a MySQL Database error?
Will IonCube encoded files work?
Will my Zend Encoded files work?
The pfpro pfpro_process() function keeps giving me Error 31
I need the virtual() function and it is not available.
Why does getallheaders() say undefined function?
Can I talk over SSL when opening an IMAP connection with the PHP imap_open() function?
How do I configure PHP?
How can one PHP file transparently handle all search-engine friendly URLs?
How do I put PHP sessions into a database instead of the default files-based method?
My PHP script needs a newer version of Zend Optimizer. What do I do?
I need to execute my cron job with PHP5.2
I need a newer version of PHP to run certain software
Can I use the pfpro extension in PHP 5.2?
Browse Categories:Getting Started, FTP, Telnet/SSH, Moving Domains, E-mail, Traffic Reports, Mailing Lists, Apache, PHP, CGI, Other Server-Side Scripting, MySQL Database, Imaging Libraries, Other Software, Billing & Terms, Control Panel, E-commerce, Pre-Sales |

