ホームページ  >  記事  >  php教程  >  PHPはシェルスクリプトとしても使用可能

PHPはシェルスクリプトとしても使用可能

WBOY
WBOYオリジナル
2016-06-13 12:45:441090ブラウズ


PHP が人気がある理由
最近、PHP (Personal Hypertext Preprocessor) は、その利便性、強力な機能、およびオープンソース機能により、過去 2 年間で Linux/Unix で最も広く使用されている Web ページ処理言語になったようです。従来の CGI 市場、さらには MicroSoft ASP (Active Server Page) の市場も徐々に侵食されており、ほとんどすべての主要な Web サイトが PHP の知識を基本要件とする人材を採用しています。
PHP がこれほど人気が​​ある理由は次のとおりです。
PHP は完全に無料であり、自由に配布できるため、多くの人が使用するようになりました。同社はより優れたエンジンとその最適化ソフトウェアを開発しています (http://www.zend.com/ を参照してください)。
PHP 自体は非常にシンプルで理解しやすく、シンプルなコマンド構文といくつかの基本的なオブジェクト指向処理機能を備えているため、初心者でも最短時間で学習できます。
PHP は、数学的処理、文字列処理、ネットワーク関連機能、各種データベースのサポート、画像処理機能など​​、非常に多くの機能を提供しており、多くの開発者が PHP 用のさまざまな機能と拡張性を開発しています。
PHP は Apache と組み合わせるのが非常に簡単で、Apache のモジュールとして使用できます。また、Apache は現在世界の Web サーバー市場の 60% を占めているため、当然のことながら PHP が最適になります。 Apacheに一致します。
ただし、今回話したいのはWebデザインにおけるPHPの応用ではなく、一般的に知られているシェルスクリプトにおけるPHPの応用についてです。これから説明するのは、PHP をシェル スクリプトとして使用することです。
PHP 実行ファイルのインストール
通常、Web ページ処理言語としての PHP は Apache モジュールにコンパイルする必要があります。したがって、コンパイルは次の操作を実行するだけです。 root として:
Unlock 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」は HEADER を送信しないことを意味します。-q を追加せずに試して結果を表示することもできます。
この例では、/usr/local/bin/php は、PHP を /usr/local/bin/ にインストールしたばかりなので、/usr/local/bin/ で実行することを意味します。 echo コマンドは「Hello, world!」を出力します。ここで、「」文字は改行文字です。
このプログラムをファイルとして保存した後、実行可能になる前に chmod (chmod x ファイル名) にする必要があることに注意してください。
高度な使用法 I
場合によっては、プログラムの実行時に ls コマンドなどのパラメーターを入力する必要があります。PHP シェル スクリプトでは、この使用法もサポートされています。特殊変数: $argc は後で送信されるパラメータの数を記録し、$argv[] 配列パラメータはパラメータの内容を格納します。たとえば、2 つの数値の合計を計算するプログラムを設計したいとします。
#!/usr/local/bin/php -q
$sum=0; sum= $sum $argv[1] $argv[2];
echo $sum;
?>
このプログラムの名前を sum.php3 と仮定し、sum.php3 を実行します。 3を出力します。
不特定の数のパラメータの合計を計算したい場合は、特別な変数 $argc を使用する必要があります:
#!/usr/local/bin/php -q
$sum=0;
for ($t=1;$t $sum=$sum $argv[$t]; > ?>
このプログラムの名前を bigsum.php3 とすると、bigsum.php3 1 2 3 4 5 を実行して Enter を押すと、15 が出力されます。 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);
fclose($fp);

echo "n------------- --------n"; $inputstr;
?>
ここで、fgets($fp,100) はファイル $fp (つまり、「/dev/ stdin」) を参照し、ファイルが到達するとプログラムは停止して待機します。この行を入力し終えて Enter キーを押すと、プログラムは入力したばかりのデータを出力します。
高度な使用 II
すでに入力を処理できますが、この関数は明らかにまだ単純すぎて、大規模なアプリケーションには対応できません。たとえば、HTML を削除した後に、入力を処理する関数が必要です。入力および出力ステアリングを処理する機能を完全に処理する必要があるため、まず次のようにプログラムを設計します。
#!/usr/bin/php -q

$fp =fopen ("/dev/stdin","r");

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

echo $inputstr;
?>
を実行すると、このプログラムを直接実行すると、Ctrl D を押すまで入力を待機してから、入力データを出力します。
more filt.php3 | filt.php3
このアプローチは、more を使用して実行することです。 filt.php3 プログラムを表示し、それを 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;
};

fclose($fp);

$inputstr=ereg_replace("<([^<>]*)>","",$inputstr); > echo $inputstr;
?>
このプログラムの名前を filt2.php3 とすると、これでフィルタリング機能が完成します。 more xxx .html | filt2.php3
HTML タグが削除されたファイルが表示されます。
結論
PHP は実際にシェル スクリプトとして非常に使いやすいです。その理由は、PHP 自体が学習しやすく、Web サイトのデザインに PHP を頻繁に使用することがあるからです。 Web ページではない他の部分を処理するために他のシェル スクリプト言語を使用することは好まれません。このとき、PHP をシェル スクリプトとして使用する利点が現れます。システム全体を一貫した方法で開発できます。 PHP を使用したい場合は、Perl/Python または C を使用してください。
国内の PHP トレンドはかなり盛んになってきていますが、この LinuxFab は PHP と MySQL で開発されています。実際、PHP の素晴らしい使い方がたくさんあります。機会があれば紹介します。 PHP 関連の情報が必要な場合は、このサイトの PHP フォーラムのディスカッションに参加してください。 (出典: ヴィフォト)

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