ホームページ >php教程 >php手册 >【移転】PHPはシェルスクリプトとしても利用可能

【移転】PHPはシェルスクリプトとしても利用可能

WBOY
WBOYオリジナル
2016-06-21 09:13:00867ブラウズ

PHP はなぜこれほど人気が​​あるのですか? 最近、PHP (Personal Hypertext Preprocessor) は、その利便性、強力な機能、およびオープンソース機能により、過去 2 年間で最も広く使用されている Web ページ処理言語になったようです。従来の 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
echo "Hello, world !"; ?>
PHP は元々 Web アプリケーションで使用されていたため、デフォルトで HTML ヘッダーを送信しますが、ここでは PHP をシェル スクリプトとして使用していることに注意してください。 -q を付けずに表示結果を試してください。
この例では、/usr/local/bin/php は、PHP を /usr/local/bin/ にインストールしたばかりなので、その下で実行することを意味します。 echo コマンドは「Hello, world!」を出力します。ここで、「」文字は改行文字です。
このプログラムをファイルとして保存した後、実行可能になるように chmod (chmod +x ファイル名) する必要があることに注意してください。
I の高度な使用法
場合によっては、プログラムの実行時に、-l パラメーターを後に続けることができる ls コマンドなど、いくつかのパラメーターを送信する必要があります。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
for ($t=1;$t<=$argc;$t++)
$sum=$sum+$argv[$t];
echo $sum;
このプログラムの名前を bigsum.php3 とします。 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");
fclose($fp); echo "n-----------n";
echo $inputstr;
このうち、fgets($fp,100) は、ファイル $fp (つまり、「/dev/stdin」) から 100 バイトのデータを読み取ります。プログラムがこの行を実行すると、入力が停止して待機し、入力が完了して 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
このメソッドは、more を使用して filt.php3 プログラムを表示し、それを filt.php3 プログラムにリダイレクトします。実際には、filt.php3 プログラム コードです。それ自体)、最後にそれを印刷します。
HTML をフィルタリングする機能を追加できます:
#!/usr/local/bin/php -q
$fp=fopen("/dev/stdin","r");

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

$inputstr=ereg_replace([ ^<>]*)>","",$inputstr);

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

出典: http://linuxfab.cx







声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。