• ベストアンサー

phpとコマンドライン

PHPを使ったシステム開発をおこなっています。 簡単な質問で申し訳ありませんが、PHPとコマンドラインの関係について 質問させてください。 コマンドラインからのPHP操作が出来ることは知っていますが、 その逆、つまりPHPプログラムでのコマンドライン操作は可能でしょうか? あるソフトを動かして、結果を得たいのですが…。 osにfreebsd-7.0を、php-5.2.6を使用しています。 freebsdのコマンドラインを使用したいです。 よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

>> つまりPHPプログラムでのコマンドライン操作は可能でしょうか シェルコマンドなど他の外部コマンドを実行するPHP関数には 下記のように色々有ります。 関数によって応答が変わりますので詳細はマニュアルを参照してください exec() system() passthru() escapeshellcmd() pcntl_exec() バックティック演算子

ALFORD-08
質問者

お礼

ありがとうございます。勉強不足でした。 教えていただいた関数を元にPHPプログラムを作成してみようと思います。 また何かありましたらよろしくお願いいたします。

関連するQ&A

  • コマンドラインからPHPを実行するには。(Windows)

    PHPスクリプトをコマンドライン上で実行しようと思い、 >php bookread.php と入力したところ、 >'cdc:\' は、内部コマンドまたは外部コマンド、 >操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示されてしまいます。 おそらく環境変数の問題か、もしくは実行しようとしたディレクトリがいけないのかと思いますが、どうしたらよいのかわかりません。 Windowsで、OSはwinXP、また、phpはxamppで取得しました。 実行しようとしたファイルbookread.phpは c:\xampp\htdocs\_test というフォルダの中にあります。 どのディレクトリに移ってから行えばよいのか、もしくは環境変数にどう書き加えればよいのか、教えてください。 私が実行を試したディレクトリは、 c:\xampp\htdocs\_test> と c:\> です。 (ブラウザ上で他のPHPスクリプトを実行することは可能です。)

    • 締切済み
    • PHP
  • system関数でphpが動作しない

    phpプログラムからphpプログラムをバックグラウンドで動作させようと下記のようにsystem関数を使いましたが、phpが動作しませんでした。 system("/usr/local/bin/php /home/user/www/test.php > /dev/null &"); 「動作しない」様子が、異常でして、コマンドラインからtopで調べてみると、phpのプロセスIDが何度も立ち上がり、上記関数があるプログラムをサーバーから消さないと、その状態が続きます。しかし、プロセスは立ち上がっても、phpプログラムは正常に動作していなようです。 さくらインターネット(スタンダード)の共用サーバーを使っています。サーバーのOSは、FreeBSD 4.10です。 よろしくお願い致します。

    • 締切済み
    • PHP
  • コマンドラインの使い方

    コマンドラインで使用するソフトがあります。 毎回コマンドラインに入れる内容が異なります。 素人考えでやっている内容は、 MSDOSのショートカットを作る。 そこにひながたを入れておく。 必要なコマンドラインの内容をエディタで作成して プロパティー>プログラム に貼り付けして実行をしています。 (例) yoi_soft -s 2002/04/01 -e 2002/04/30 もっと便利な方法はないでしょうか。 #私のスキル ・ASPはいじれる。 #この作業を1日、数回から数十回実行する必要があり、形式は同じですが値はいつも変わります。値のルールはありません。

  • LinuxでのコマンドラインからのMP3編集

    LinuxでのコマンドラインからのMP3編集(フェードアウト)を行えるソフトはありますか? プログラム上から使用するつもりなので、コマンドラインで行える方法限定となります。 また、使用方法についてもわかりましたら具体的にご教授いただきたいです。 (コマンドライン文など)

  • PHPのコマンドラインでのバージョンとブラウザからみたバージョンが違う

    こんにちは。 サーバを一から構築していて、 Apache 2.2.3をインストールし、 PHPの5.2.9をインストールしたのですが、 PHPのコマンドラインからチェックしたバージョンと、 ブラウザで「phpinfo()」したときのバージョンが違い、そういうことがあるのかを確認したく、ご質問させていただきます。 コマンドラインで、「php -v」したときに、 ------- PHP 5.1.6 (cli) (built: Apr 7 2009 08:00:04) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies ------- となるのですが、ブラウザで「phpinfo()」を記述したPHPファイルを確認すると、 ------- PHP Version 5.2.9 ------- となってしまいます。 これは、PHPのインストールが、重複して行われてしまい、 複数のバージョンが存在してしまっているのでしょうか? コマンドラインでの「php.ini」の場所は、 /etc/php.ini で、ブラウザから確認した「php.ini」の場所は、 /usr/local/php/lib/php.ini になっています。 なにか、気づく点や、不足している情報などありましたら指摘いただけると助かります。 宜しくお願い致します。

  • コマンドラインが使えません。

    WinXP apache1.3.19 perl5.8.7 コマンドラインにてperl -vでバージョン表示あります。 #which perlでは、 「'#which' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と表示されます。 また、他のコマンドでは、'#’も認識されません。 perlのpathは、マイコンピュ-ターの環境変数で設定しました。 #which perlで表示させるためにはどうすればよいのでしょうか? ご存知の方よろしくお願いいたします。

  • sqlplusコマンドラインの暗号化

    powershellやBatの中でsqlplusを使用しています。 その際にコマンドラインだとパスワード文字列が丸見えになってしまいます。 これを何かの手段で暗号化できたりできるでしょうか? sqlplus system/password(passwordの文字列がプログラム内で丸見えになってしまう) ConvertTo-SecureStringなどのコマンドを使用してみたのですがうまくいきません。 よろしくお願いします。

  • PHPのCLI(コマンドライン)について

    PHPのCLI版について教えていただきたいことがあります。 まず、前提条件として、 OS:Redhat Linux 9.0 PHP:4.4.1 WEB:Apache2.0 MAIL:qmail となっています。 確認事項としてphpのパスを確かめるために、SSHなどのコマンドラインから、 (A)のようにパスを指定して実行した場合、正常に処理できます。 (A) [/ ]# /usr/local/bin/php <?php phpinfo(); ?> 実行→phpinfoの内容が表示される 次に、qmailの転送機能を利用し、受信したメールを自動的に前述の test.phpに渡すとmaillogに以下のようにログが残っています。 delivery 1488: deferral: /bin/sh:  /var/www/sample/test.php:  /usr/local/bin/php :  bad interpreter:  No such file or directory test.phpのパスは正しく設定されており、 [/ ]# /usr/local/bin/php /var/www/sample/test.php とした場合、正しく読み込みます。 また、test.phpの1行目には #!/usr/local/bin/php と記述してあり、もう一台のサーバー(Redhat Linux 2.1AS)では 正しく動いております。 実行できない原因を調べる手段として、 ・この設定を確認 ・このコマンドを実行 など、まず何をチェックすればいいのか 教えていただけると助かります。 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • コマンドラインで実行するには?(Windows7)

    OSを新しくしたため、わからないことが多く往生しております。 よろしく、ご教授ください。 Windows7にて、コマンドラインでソフトを実行させたいのですがどのようにすればできるでしょうか? スイッチつきで実行するためにコマンドラインで実行したいのです。

  • xoops/eguideの複製(コマンドライン?)

    xoopsのイベント案内モジュールのeguideの複製を行いたいのですが、 複製方法の説明がよくわかりません。 ------------------------------------------ eguide 2.4 以降ではモジュールの複製ができる。(残念ながらまだ D3 ではない) 複製は、コマンドラインの補助プログラムを使って行う。 "eguide/duplicate.php" で、eguide モジュールを欲しいだけ複製できる。 (このコマンドは、Unix系のシステムでのみ使える) これの使い方は以下の通り: $ cd modules/eguide $ php duplicate.php event ticket class Duplicate: event Duplicate: ticket Duplicate: class ------------------------------------------ という説明なのですが、どうやって複製すればいいのかわからず困っています。 コマンドラインとは、PCのアクセサリに入っている「コマンドプロンプト」というものでしょうか・・ ダメ元でコマンドプロンプトに $ cd modules/eguide $ php duplicate.php event ticket class Duplicate: event Duplicate: ticket Duplicate: class と入力しようとしたのですが、「$」が使えないみたいな英語が出てできませんでした。 基本的なことかもしれませんが、どなたか詳しい方法を教えていただけませんでしょうか。 よろしくお願いいたします。