如何从命令行执行php脚本?

时间:2012-07-02 06:16:56

标签: php

我有一个PHP脚本,地址为C:\Denwer\home\localhost\www\upload_record_test.php。 此脚本显示一些文本。但是如果我尝试通过命令php C:\Denwer\home\localhost\www\upload_record_test从命令行执行此脚本,我会得到包含许多错误的html响应和消息Call to undefined function curl_init()。代码:

<?php
    $_POST_DATA=array();
    $_POST_DATA['id']='AccountPagesView.a_book/45';
    $_POST_DATA['old_value']='1';
    $_POST_DATA['value']='2';
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://localhost/index.php/welcome/update_record');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST_DATA);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    $real_result=curl_exec($ch);
    $expected_result=array('result'=>'LOGIN', 'old_value'=>'1');
    $real_result=json_decode($real_result, true);
    if (count(array_intersect($real_result, $expected_result))==2)
    {
        echo "THE TEST HAS BEEN COMPLETED";
    }
    else 
    {
        echo "THE TEST HASN'T BEEN COMPLETED<br/>";
        echo "RESULT:";
        print_r($real_result);
        echo "<br/>EXPECTED RESULT:";
        print_r($expected_result);
    }
?>

请告诉我,如何从命令行执行此脚本并仅获取结果文本?提前致谢。

1 个答案:

答案 0 :(得分:0)

检查卷曲是否正确安装。如果没有从php.net检查this指令。

如果是,则可能未启用您的卷曲模块。您必须启用curl模块才能使用curl方法。您可以通过编辑php.ini并启用模块来完成此操作。

在Windows上:

  • 打开您的php.ini文件
  • 找到;extension=php_curl.dll
  • 的一行
  • 移除;前方并保存文件
  • 重启apache服务器

它应该有用。

<强>更新

有时safe_mode可能会导致此问题。转到ini文件并禁用safe_mode

[php.ini]
safe_mode = Off