0

使用 Zendserver 从 IBM i Server 调用 PHP 我向 php 脚本发送了一些 Parms。在我们的一台机器上,参数被分割成空白?但为什么 ?他们在双引号中??

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 

在其他机器上相同的程序工作正常??

有任何想法吗 ?

再见乔吉

4

1 回答 1

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' +
               )
于 2013-08-10T00:19:03.667 回答