4D v14.3PHP Execute |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
PHP Execute
PHP Execute
PHP ExecuteコマンドはPHPスクリプトや関数を実行するために使用します。. scriptPath引数には、実行するPHPスクリプトのパス名を渡します。ファイルがデータベースストラクチャと同階層に存在する場合、相対パス名を指定できます。そうでなければ完全パスです。パス名はシステムシンタックスあるいはPOSIXシンタックスで表現できます。 scriptPathスクリプト内の特定の関数を実行したい場合、functionName引数にPHP関数名を渡します。この引数に空の文字列を渡したりfunctionName引数を省略した場合、スクリプト全体が実行されます。 Note: PHPの関数名は大文字小文字を区別します。括弧は使用せず、関数名のみを入力してください。 phpResult引数はPHP関数の実行結果を受け取ります。以下のいずれかを渡せます:
phpResultにはテキスト、倍長整数、実数、ブール、または日付型、および (配列を除く) BLOBや時間型のフィールドを渡すことができます。4Dは後述の返されるデータの変換で説明する原則に基づき、データの変換と必要な調整を実行します。
引数を期待するPHP関数を呼び出す場合、1つ以上の値を渡すためにparam1...Nを使用します。値はセミコロンで分けられなければなりません。文字、テキスト、ブール、実数、整数、倍長整数、日付、時間タイプの値を渡すことができます。ピクチャとBLOBは渡せません。配列を送信することができます。この場合、PHP Executeコマンドには配列へのポインタを渡さなければなりません。そうしない場合、配列のカレントのインデックスが整数として送信されます (例題参照)。コマンドはポインタ、ピクチャおよび2D配列を除き、すべてのタイプの配列へのポインタを受け入れます。 注: 技術的な理由で、FastCGIプロトコル経由で渡す引数のサイズは64KBを超えてはなりません。テキスト型の引数を使用する際にはこの制限を考慮にいれる必要があります。 4D側でコマンドが正しく実行できると、言い換えれば実行環境の起動、スクリプトのオープン、そしてPHPインタープリターとの通信に成功すると、コマンドからTrueが返されます。 そうでない場合、ON ERR CALLでとらえることができ、GET LAST ERROR STACKで解析できるエラーが生成されます。 注: PHPを使用してエラー管理を設定できます。詳細は例えば以下のページを参照してください: http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting. 以下の表はphpResult引数の型に基づき、返されるデータが4Dによりどのように解釈され変換されるかを説明しています。
(*) デフォルトでHTTPヘッダーは返されません: 注: PHPを使用して大量のデータを取得する必要がある場合、通常関数の戻り値を使用するよりも、(echoや同等のコマンドを使用して) stdOutバッファーを経由した方が効率的です。詳細はPHP GET FULL RESPONSEコマンドの説明を参照してください。 SET ENVIRONMENT VARIABLEコマンドを使用してスクリプトが使用する環境変数を指定できます。 4Dは以下の特別な関数を提供します:
"myPhpFile.php"スクリプトを関数指定なしで呼び出します。スクリプトは以下の通りです: <?php 以下の4Dコードを実行すると: C_TEXT($result) "Current PHP version: 5.3"と表示されます。 "myNewScript.php"内のmyPhpFunction関数を引数付きで呼び出します。スクリプトは以下の通りです: <?php 関数を呼び出します: PHPインタープリターを終了します: $ifOk:=PHP Execute("";"quit_4d_php") エラー管理: // エラー管理メソッドをインストール PHP_errHandlerメソッドは以下の通りです : phpCommError:="" 実行前に4Dで動的にスクリプトを作成します: DOCUMENT TO BLOB("C:\\Scripts\\MyScript.php";$blobDoc) その後スクリプトを実行します: $err:=PHP Execute("C:\\Scripts\\MyScript.php";"function2Rename_v2";*) 日付と時間タイプの値を直接受け取ります。スクリプトは以下の通りです: <?php 4D側で日付を受け取ります: 配列にデータを配分します: ARRAY TEXT($arText ;0) 配列を初期化します: ARRAY TEXT($arText ;0) 配列を使用して引数を渡します: ARRAY INTEGER($arInt;0) |
プロパティ
プロダクト: 4D
履歴
初出: 4D v12 参照
4DでPHPスクリプトを実行する ARTICLE USAGE
ランゲージリファレンス ( 4D v12.4) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||