0

Zendserver を使用して IBM i サーバーから PHP を呼び出す いくつかのパラメーターを php スクリプトに送信しました。私たちのマシンの 1 つで、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 に答える