在SH脚本调用的PHP文件之间传递值

时间:2012-10-23 17:18:03

标签: php sh

我试图从SH脚本调用PHP脚本。 这很简单,我从SH接收值,但是当我尝试使用OOP将值从第一个PHP传递到其他PHP时,没有传递任何内容。

这是第一个PHP,它接收来自SH文件的简单调用,而不是通过URL传递值:

$controller = $_GET['c'];
$metodo     = $_GET['m'];
$uniqueid       = $_GET['uniqueid'];

$url = '../controllers/'.ucfirst($controller).'.controller.php';

include_once($url);

$controller = ucfirst($controller)."Controller";

$objeto = new $controller;
$dados = $_POST;

$objeto->dados = $dados;

$objeto->uniqueid = $uniqueid;

//CALL THE FUNCTION
$result = $objeto->$metodo($uniqueid);

//RETURN THE RESPONSE
echo  $result;

这里我收到传递给对象的值: (这里是问题,值是空的)

include('../classes/Tarifacao.class.php');
class TarifacaoController{
    public function Tarifa($uniqueid){
        $obj_tarif = new Tarifacao;
        $bilhete = $obj_tarif->BuscaUltimoBilhete($uniqueid);
        echo $this->Imprime($bilhete,'BILHETE');

        $uniqueid = $bilhete['uniqueid'];
        echo $this->Imprime($uniqueid,'UNIQUEID');

        intval($duracao = $bilhete['billsec']);
        echo $this->Imprime($duracao,'DURAÇÃO');
        ...

抱歉,我的英语太差了。

1 个答案:

答案 0 :(得分:1)

如果从命令行执行PHP,则无法传递这样的值。 您需要使用$argv保留变量:http://www.php.net/manual/en/reserved.variables.argv.php

您可以尝试这样的事情:

$controller = $argv[1];
$metodo     = $argv[2];
$uniqueid   = $argv[3];

从shell执行这样的脚本:

$ php script.php <c> <m> <uniqueid>