嗨,我在POST请求中尝试PHP Post Request,认为它可能对我有用,我的代码如下所示
$sub_req_url = "http://localhost/index1.php";
$ch = curl_init($sub_req_url);
$encoded = '';
// include GET as well as POST variables; your needs may vary.
foreach($_GET as $name => $value) {
$encoded .= urlencode($name).'='.urlencode($value).'&';
}
foreach($_POST as $name => $value) {
$encoded .= urlencode($name).'='.urlencode($value).'&';
}
// chop off last ampersand
$encoded = substr($encoded, 0, strlen($encoded)-1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $encoded);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
形成index.php文件和index2.php是同一目录中的另一个文件,当我打开页面时,我的error.log文件中出现以下错误
[Sat Dec 18 15:24:53 2010] [error] [client ::1] PHP Fatal …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置一个需要curl的cronjob,我直接从crontab调用它
* * * * * /usr/bin/php myurl/my_cron.php
Run Code Online (Sandbox Code Playgroud)
问题是,看起来我的phpcli没有安装curl模块.
当我从浏览器点击网址时,它工作正常,但是当我运行时
php -q myfile.php
Run Code Online (Sandbox Code Playgroud)
从命令行,它返回
PHP Fatal error: Call to undefined function curl_init() in my_cron.php on line 20
Run Code Online (Sandbox Code Playgroud)
当我运行php -mcurl模块时没有显示出来.但是,当我转到浏览器并转储php_info()时,模块会显示并说明它已正确安装.
另一个踢球者是我一直试图apt-get在服务器上安装curl (Ubuntu 12.04 php 5.4),它似乎取消了我的PHP,因为它开始只是尝试下载index.php文件,无论我尝试浏览到哪里.
以下是我为安装curl而尝试取消PHP的尝试:
sudo apt-get install php-curl
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl
Run Code Online (Sandbox Code Playgroud)
在每次重启apache2服务器之后,我仍然没有骰子,它试图下载文件而不是打开页面.
如何安装php5-curl到cli,以便我的服务器可以运行它,而不必通过浏览器?
另一种可能性是我可以通过crontab文件中的wget运行cronjobs,但我听说这不是最好的选择,可能不可靠.
任何帮助深表感谢.谢谢!