duanba5777
duanba5777
2013-11-19 10:11

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

  • phantomjs
  • codeigniter
  • php
  • casperjs
  • command-line
已采纳

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 doutui8842 8年前

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

    点赞 评论 复制链接分享

为你推荐