問題タブ [passthru]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Cakephp で Python スクリプトを呼び出す
search_categorization_service.php というサービス クラスを作成しました。今、私はこのクラスで python scrpt を呼び出しています
しかし、ブラウザに出力がありません。私はそれをコントローラークラスに返して出力を印刷しようとしましたが、うまくいきません。それはcakephpの問題ですか?同じアプリケーションが通常の php で正常に動作するためです。
php - PHPスクリプトの強制終了時にパススループロセスを強制終了する方法は?
PHP passthru() を介して Linux コマンドを実行しています。例:
ここで、スクリプトを強制終了したいとします。にリストされているプロセスを強制終了しscript.pid
ます。ただし、これにより、sleep 500
(または任意のプロセス) がバックグラウンドで実行されたままになります。exit
戻り変数に passthru() を使用していますが、system() と shell_exec() から同じ結果が得られます。これによりプロセスがバックグラウンドで実行される理由を知っている人はいますか?
php - system( ) または passthru( ) を使用して php から python スクリプトを実行しても、何も出力されません。なんで?
数百のログ ファイルに対して Python スクリプト (ログ パーサー) を実行する必要がありますが、私は PHP の専門家なので、ディレクトリからファイルのリストを取得して Python スクリプトを呼び出す小さな PHP スクリプトを作成することにしました。 foreach ループで動的に。
Pythonバイナリへの完全なシステムパス、Pythonスクリプトへの完全パスを使用してPHPスクリプトに変数を設定し、すべてが正しいことを確認しました。実行しようとしているスクリプトの出力をエコーして確認します。
次にすること
私が取得するのは、PHP の最初の行だけです。
シェルでエコーされた出力(「実行中」の後)をPythonで直接コピー、貼り付け、実行できます。出力は問題ありません。PHPスクリプトに構文の問題がないことはわかっています。
しかし、それをラップする php スクリプトを実行すると、PHP からの echo( ) ステートメント以外の出力は生成されません。そこにハングアップするだけです (実行時間の長い Python スクリプトが実際に機能していると思いますが、それを確認する方法がわかりません)。エラー ログには何も記録されておらず、スクリプトは Ctrl-C を押すまで終了しません。
exec( )、system( )、passthru( ) に関する多くの議論を見てきましたが、system( ) を使用して出力を表示する必要があることがわかりますが、何らかの理由でそうではありません。
私もしようとしました
その後
PHPスクリプトの
注:この質問から 2>&1 ビットを追加しましたが、役に立ちませんでした。Apache を参照していますが、CLI で PHP を実行しています。
ノート:
in shell は出力を生成しません。
私は何が欠けていますか?
sql-server - パススルー/パススルー クエリを編集可能にする方法は?
SQL Server バックエンドを使用する Microsoft Access 2007 では、通常、SQL Server からリンクされたテーブルを、単一のテーブル データ変更用の編集可能なフォームの Form.RecordSource として取得します。ローカル クエリは、複数のリンクされたテーブルのフィールドを結合するクロス テーブル エディションに使用されます。編集フォームでデータを変更するには、ローカル クエリ自体が更新可能である必要があります。
現在、ネイティブ SQL Server テーブルを直接使用するために、すべてのローカル クエリをパススルー クエリに置き換えることを計画しています。
次の SQL 文字列を使用して、qrySelProductsPassThroughEditable という名前の非常に単純なパススルー クエリを作成しようとしました。
ID フィールドは、定義として SQL Server でプライマリ キーとして定義されている IDENTITY フィールドです。
ただし、Access パススルー クエリによって返されるデータシートはまったく編集できません。したがって、編集フォームの .RecordSource としても使用できません。
これは、パススルー クエリに関連するすべてのテーブルのすべての主キーが含まれている場合、クエリが編集可能になるというリンクとは対照的です。
結論 事後論を追加
以下の説明では、Microsoft Access 2007 の .accdb、.accde、または .accdr (Access ランタイム) のパススルー クエリは常に読み取り専用であり、編集することはできません。これは、リンク テーブルを使用する必要があるフォームや、データ IO 用のリンク テーブルを含む書き込み可能な通常のクエリではなく、最終的なリストとして、またはレポートの .RecordSource として使用する必要があります。
php - PHP: tar フォルダーを作成し、パススルーを使用してクライアントに直接送信する方法は?
次を使用して、データベース ダンプを直接ダウンロードできます。
ディレクトリから .tar ファイルを作成できますか? サーバーに保存せずに、ファイルを生成してダウンロードするだけですか?
これを実行できます(ファイルは正しいです):
しかし、バックアップファイルをサーバーに保存したくありません...直接ダウンロードしたいです。データベース ダンプの例のようなことをしようとしましたが、成功しませんでした。
それを行う方法はありますか?
編集:
手伝ってくれてありがとう。-f を削除するのは良い考えでした。
今では動作します:
php - PHP: パススルーと register_shutdown_function
私は奇妙な問題を抱えています。passthru() を使用してダウンロードを引き起こすスクリプトがあります - ユーザーがファイルをダウンロードしているときにデータベースに記録したい...
これを行うには、パススルーの前に register_shutdown_function() がありますが、ファイルが完全にダウンロードされずに呼び出されます。
ファイルがまだダウンロード中の場合でも、関数 download_ended() が呼び出されます。ファイルが完全にダウンロードされた後、またはユーザーによって中断された後、データベースからエントリを削除するにはどうすればよいですか?