使用CURL运行PHP脚本

使用CURL运行PHP脚本,php,curl,cron,webmin,Php,Curl,Cron,Webmin,我已经创建了一个内部计费系统,我需要根据客户的计费计划为他们生成发票,但是我在从CURL运行PHP脚本时遇到了一个问题,我想知道是否有办法解决这个问题 我目前有一个CRON任务,它运行一个名为crontask.php的php脚本 然后,crontask.php计算客户是否需要生成发票并通过电子邮件发送给他们。如果它计算出是这样的,那么它将尝试调用一个url来创建发票,并使用CURL发送电子邮件,即(www.internal.co.uk/invoicing/geninvoice.php?CUST=

我已经创建了一个内部计费系统,我需要根据客户的计费计划为他们生成发票,但是我在从CURL运行PHP脚本时遇到了一个问题,我想知道是否有办法解决这个问题

我目前有一个CRON任务,它运行一个名为crontask.php的php脚本

然后,crontask.php计算客户是否需要生成发票并通过电子邮件发送给他们。如果它计算出是这样的,那么它将尝试调用一个url来创建发票,并使用CURL发送电子邮件,即(www.internal.co.uk/invoicing/geninvoice.php?CUST=10)

函数获取网页($url)
{
$ua='Mozilla/5.0(Windows;U;Windows NT 5.1;en-US)AppleWebKit/525.13(KHTML,像Gecko)Chrome/0.A.B.C Safari/525.13';
回显“curl:url”。$url.
”; $options=array( CURLOPT_RETURNTRANSFER=>true,//返回网页 CURLOPT_HEADER=>true,//不返回头 CURLOPT_FOLLOWLOCATION=>true,//跟随重定向 CURLOPT_ENCODING=>“”,//处理所有编码 CURLOPT_USERAGENT=>ua,//我是谁 CURLOPT_AUTOREFERER=>true,//在重定向时设置referer CURLOPT_CONNECTTIMEOUT=>15,//连接超时 CURLOPT_TIMEOUT=>15,//响应超时 CURLOPT_MAXREDIRS=>10,//在10次重定向后停止 ); $ch=curl\u init($url); curl_setopt_数组($ch$options); $content=curl\u exec($ch); $err=curl\u errno($ch); $errmsg=curl\u error($ch); $header=curl\u getinfo($ch,CURLINFO\u有效\u URL); 卷曲关闭($ch); if(isset($header['errno'])){ $header['errno']=$err; $header['errmsg']=$errmsg; } //将此处的errmsg更改为errno 如果(isset($errno)){ 回声“CURL:.$errmsg.
”; } 返回$content; }
当运行这个程序时,当我试图在PHP中从curl运行时,访问被拒绝


服务器在virtualmin/webmin上运行,我有根访问权限,是否需要更改或向脚本添加身份验证?

您可以直接在浏览器中调用URL吗?@RaggaMuffin-420是的,我可以
    function get_web_page($url)
{
$ua = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13';

    echo "curl:url<pre>".$url."</pre><BR>";
    $options = array(

        CURLOPT_RETURNTRANSFER => true,     // return web page
        CURLOPT_HEADER         => true,    // don't return headers
        CURLOPT_FOLLOWLOCATION => true,     // follow redirects
        CURLOPT_ENCODING       => "",       // handle all encodings
        CURLOPT_USERAGENT      => $ua,    // who am i
        CURLOPT_AUTOREFERER    => true,     // set referer on redirect
        CURLOPT_CONNECTTIMEOUT => 15,      // timeout on connect
        CURLOPT_TIMEOUT        => 15,      // timeout on response
        CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects

    );

    $ch      = curl_init($url);
    curl_setopt_array( $ch, $options );
    $content = curl_exec( $ch );
    $err     = curl_errno( $ch );
    $errmsg  = curl_error( $ch );
    $header  = curl_getinfo( $ch,CURLINFO_EFFECTIVE_URL );
    curl_close( $ch );

    if(isset($header['errno'])) {
    $header['errno']   = $err;
    $header['errmsg']  = $errmsg;
    }

    //change errmsg here to errno
    if (isset($errno)) {
        echo "CURL:".$errmsg."<BR>";
    }
    return $content;
}