duanba5777 2013-11-19 10:11
浏览 41
已采纳

通过命令行界面使用PHP和Codeigniter

I have the following function that is being run from the command line, the first parameter is always an integer e.g (11) and the second parameter is always an string 'acmeinc'

When I run the code via the CLI it outputs :

Number of arguments: 2

However I seem to be unable to pass the $order_id variable to the $this->json_path variable in the same function - its as if the $order_id is passing as an empty value '' - can any suggest why this is happening?

public function execute($order_id, $merchant)
{   
    $numargs = func_num_args();
    echo "Number of arguments: $numargs
";
    print_r($numargs[0]);
    print_r($numargs[1]);

    $this->_casperjs_path = 'casperjs';

    $this->script_path = '"/srv/mysite.com/application/casperjs/'. $merchant .'.js"';
    $this->json_path = '"/srv/mysite.com/application/casperjs/orders/'. $merchant .'-'. $order_id .'.txt"';             
    $path = ( $this->_phantomjs_path != '' ? 'PHANTOMJS_EXECUTABLE=' . $this->_phantomjs_path . ' ' : '' ) . $this->_casperjs_path . ' ' . $this->script_path . ' ' . $this->json_path; 
    die($this->json_path); // '"/srv/mysite.com/application/casperjs/orders/acmeinc-.txt"'  
    $return_value = exec( $path, $output = array());

    return $return_value;
}

I am expecting the die() to output the file as follows:

'"/srv/mysite.com/application/casperjs/orders/acmeinc-1.txt"'

Instead the order_id variable doesn't seem to be passing (or is being set somehow to an empty variable as follows:

'"/srv/mysite.com/application/casperjs/orders/acmeinc-.txt"'

Can anyone explain why this is happening?

  • 写回答

1条回答 默认 最新

  • doutui8842 2013-11-19 10:22
    关注

    Sussed it... it was being passed via another function and defaulting it to an empty variable.. doh!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?