Parms被分成了空白

时间:2013-08-09 10:48:40

标签: php ibm-midrange zend-server

使用Zendserver从IBM i Server调用PHP 我发送了一些Parms到php脚本。在我们的一台机器上,parms被拆分为空白? 但为什么 ?它们是Doublequotes ??

CALL       PGM(QP2SHELL) +                                
           PARM('/USR/LOCAL/ZENDSVR/BIN/PHP-CLI' +        
           '/www/zendsvr/htdocs/test/t1.php' +    
           'Hallo Test' + 'P2' + 'P3')

在PHP中,args数组包含

[0] => /www/zendsvr/htdocs/idsmail/t1.php5
[1] => Hallo
[2] => Test
[3] => P2                            
[4] => P3 

在其他机器上,同一程序工作正常吗?

有什么想法吗?

Bye jogi

1 个答案:

答案 0 :(得分:0)

如果您的示例与您的CL代码完全相同,那么您的+符号太多了。在源代码中,CL命令通常在一行结尾处终止。如果您的命令继续到另一行,则用+符号表示。在这种情况下,它不是一个连接运算符(可能是||)。空格足以分隔参数。

您不需要第4行的+符号,这将被视为算术运算符。这应该可以解决您的问题:

CALL       PGM(QP2SHELL) +                                
           PARM('/USR/LOCAL/ZENDSVR/BIN/PHP-CLI' +        
           '/www/zendsvr/htdocs/test/t1.php' +    
           'Hallo Test'  'P2'  'P3')

关键字PGM和PARM不是必需的,所以我个人会这样写:

CALL QP2SHELL  ('/USR/LOCAL/ZENDSVR/BIN/PHP-CLI' +        
                '/www/zendsvr/htdocs/test/t1.php' +    
                'Hallo Test' +
                'P2' +
                'P3' +
               )