ホームページ > php教程 > php手册 > PHPのシェルスクリプト方式(変換) この方式はPERLのCGI方式とよく似ています。 。 :)

PHPのシェルスクリプト方式(変換) この方式はPERLのCGI方式とよく似ています。 。 :)

WBOY
リリース: 2016-06-21 09:12:45
オリジナル
1486 人が閲覧しました

cgi|perl

シェル スクリプト PHP

PHP はなぜそれほど人気が​​あるのですか?
最近、PHP (Personal Hypertext Preprocessor) は、この 2 年間で Linux/Unix で最も広く使用されている Web ページ処理言語になったようです。便利で強力なオープンソースです。その特性により、PHP は従来の CGI 市場、さらには MicroSoft ASP (Active Server Page) の市場を徐々に侵食しています。ほとんどすべての主要な Web サイトが、PHP を基本条件として人材を採用しています。
PHP がこれほど人気が​​ある理由は次のとおりです:
PHP は完全に無料であり、自由に配布できるため、多くの人がそれを使用するようになりました。より優れたエンジンと最適化ソフトウェアを開発するために民間企業を誘致しました (http://www.zend.com/ を参照)。
PHP 自体は非常にシンプルで理解しやすく、シンプルなコマンド構文といくつかの基本的なオブジェクト指向処理機能を備えているため、初心者でも最短時間で学習できます。
PHPは、数学的処理、文字列処理、ネットワーク関連機能、各種データベースサポート、画像処理機能など​​、非常に多くの機能を提供しており、多くの開発者がPHP用のさまざまな新機能を開発しています。
PHP は Apache のモジュールとして使用することができ、セットアップとインストールが非常に簡単です。現在、Apache は世界の Web サーバー市場の 60% を占めているため、PHP が最適です。アパッチ用。
ただし、今回話したいのは、Web デザインにおける PHP の応用ではなく、シェル スクリプトでの PHP の応用です。一般に知られているシェル スクリプトは、tcsh、bash、perl、または Python に関するものです。ここで話しているのは、PHP をシェル スクリプトとして使用することです。
PHP 実行可能ファイルのインストール
通常、Web ページ処理言語としての PHP は Apache モジュールにコンパイルする必要があります。したがって、コンパイルは root として次の操作を実行するだけです。 php-3.0 .xx.tar.gz のロックを解除します
cd php
configure
make
コンパイル後、php ディレクトリに実行可能ファイルが作成されます。ファイル名は php です。これを /usr/local/bin にコピーします。ファイルが大きすぎる場合は、strip コマンドを使用して PHP 内の不要な情報を削除すると、ファイルが大幅に小さくなることに注意してください。
最初のプログラム
最初の PHP シェル スクリプト プログラムの作成を開始します。 この例では、「Hello world!」を出力します。
#!/usr/local/bin/php -q
PHP は元々 Web アプリケーションで使用されていたため、デフォルトで HTML ヘッダーを送信することに気づきましたが、ここでは PHP をシェル スクリプトとして使用しています。これは、HTML ヘッダーを送信しないことを意味します。 -q を追加せずに表示結果を試すことができます。
この例では、/usr/local/bin/php は、PHP を /usr/local/bin/ にインストールしたばかりなので、その下で実行することを意味します。 echo コマンドは「Hello, world!」を出力します。ここで、「」文字は改行文字です。
このプログラムをファイルとして保存した後、実行可能になるように chmod (chmod +x ファイル名) する必要があることに注意してください。
I の高度な使用方法
プログラムの実行時に、-l パラメーターを後に続けることができるいくつかのパラメーターを送信する必要がある場合があります。PHP シェル スクリプトでは、2 つの特殊変数 $argc を使用してこの使用法もサポートされています。は後で送信されるパラメータの数を記録し、$argv[] 配列パラメータはパラメータの内容を保存します。たとえば、2 つの数値の合計を計算するプログラムを設計したいとします。
#!/usr/local/bin/php -q
$sum=$sum+$argv[1] ]+ $argv[2];
echo $sum;
?>
このプログラムの名前を sum.php3 とすると、sum.php3 1 2 を実行して Enter を押すと、3 が出力されます。
不特定の数のパラメータの合計を計算したい場合は、特別な変数 $argc を使用する必要があります:
#!/usr/local/bin/php -q
$sum=0; ($t=1;$t<=$argc;$t++)
$sum=$sum+$argv[$t];
echo $sum;
?> このプログラムの名前を bigsum とします。 .php3 1 2 3 4 5 を実行して Enter を押すと、15 が出力されます。 bigsum.php3 1 2 3 4 5 6 を実行して Enter を押すと、21 が出力されます。
プログラムの実行中にデータを入力する必要がある場合がありますが、PHP はもともと Web デザインに使用されており、Web ページでのデータ入力は当然 FORM を使用して入力されるため、PHP をシェル スクリプトとして使用する場合に問題になります。関数ですが、Linux/Uinx ではファイルを開いて入力できます。開きたいのはデバイス ファイル /dev/stdin (stdin は標準入力の意味です) で、プログラムは次のとおりです:
#!/usr/ local/bin/php -q
$fp=fopen("/dev/stdin","r");
$inputstr=fgets($fp,100); echo " ---------------------- ";
echo $inputstr;
?> ; fgets($fp,100) は 100 バイトの読み取りを指します。ファイル $fp (つまり、「/dev/stdin」) からのデータ。プログラムがこの行を実行すると、プログラムは停止して入力を待ちます。入力を終えて Enter キーを押すと、プログラムはデータを出力します。私たちは入ったばかりです。
高度な使用 II
すでに入力を処理できますが、この関数は明らかに単純すぎて、大規模なアプリケーションには対応できません。たとえば、現時点では、データ ストリームから HTML を完全に削除する機能が必要です。入力と出力のステアリングを処理するには、まず次のようにプログラムを設計します。
#!/usr/local/bin/php -q

while(!feof($fp)) {
$c=fgetc($fp);

fclose($fp); ?>
このプログラムを filt.php3 という名前だとします。このプログラムを直接実行すると、入力データを出力する前に Ctrl+D を押すまで待機します:
more filt .php3 | filt.php3
このメソッドは、filt.php3 プログラムを表示し、それを filt.php3 プログラムにリダイレクトするために使用します (実際には、filt.php3 プログラム コードです)。それ自体)、最後にそれを印刷します。
HTML をフィルタリングする機能を追加できます:
#!/usr/local/bin/php -q
$fp=fopen("/dev/stdin","r"); feof($fp)) {
$c=fgetc($fp);

fclose($fp); ^<>]*)>","",$inputstr);

echo $inputstr;
?>
フィルタリング機能が完了するように、このプログラムの名前を filt2.php3 と仮定します ﹐信じられないので、HTML ファイルで試してみてください:
more xxx.html | filt2.php3
HTML タグが削除されたファイルが表示されます。
結論
PHP はシェル スクリプトとして非常に使いやすいです。その理由は、PHP 自体が学習しやすく、Web サイトのデザインに PHP を頻繁に使用していた場合、もう PHP が好きではなくなるからです。 Web ページではない他の部分を扱うには、他のシェル スクリプト言語を使用します。このとき、PHP をシェル スクリプトとして使用するメリットが現れます。PHP を使用せずにシステム全体を一貫した方法で開発できます。 Perl/Python または C も同時に使用します。







関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート