ホームページ バックエンド開発 PHPチュートリアル PHP をシェル スクリプト言語として使用する方法_PHP チュートリアル

PHP をシェル スクリプト言語として使用する方法_PHP チュートリアル

Jul 15, 2016 pm 01:23 PM
php shell 使用 動的 どうやって 意思 開発する 私たち はい 知る ウェブページ 脚本 言語

PHP が非常に優れた動的 Web 開発言語 (高速、短い開発サイクルなど) であることは誰もが知っています。しかし、PHP がシェル スクリプトを作成するための言語としても使用できることを認識している人はほとんどいません。PHP は、Perl や Bash ほど強力ではありませんが、特に、次のような場合に優れた利点があります。私のような人は、PHP には詳しいが、Perl にはあまり詳しくありません。
PHP をシェル スクリプト言語として使用するには、PHP を Apache モードではなくバイナリ CGI としてコンパイルする必要があります。バイナリ CGI モードで実行するように PHP をコンパイルする際には、セキュリティ上の問題がいくつかあります。解決策については、PHP マニュアル (http://. /www.php.net)。
最初はシェル スクリプトを書くことに不快に感じるかもしれませんが、時間が経つにつれて上達します。PHP を一般的な動的 Web ページ作成言語として使用する場合と、シェル スクリプト言語として使用する場合の唯一の違いは、最初のスクリプトでシェル スクリプトを開始する必要があることです。このスクリプトのプログラム パスを説明します:
#!/usr/local/bin/php -q
PHP が HTTPHeader を出力しないように、PHP 実行ファイルの後にパラメータ「-1」を追加しました (必要な場合)。 Web Dynamic Web ページとして使用するには、ヘッダー関数を使用して自分で HTTPHeader を出力する必要があります)。もちろん、シェル スクリプトで PHP の開始タグと終了タグを使用する必要があります:

次に、シェル スクリプト言語としての PHP の使用をよりよく理解するための例を見てみましょう:
#!/usr/local /bin/ php -q
print("Hello, world!n");
?>
上記のプログラムは単に「Hello, world!」をモニターに出力します。
1. シェル スクリプトの実行パラメータを PHP に渡します。
シェル スクリプトとして、プログラムを実行するときに、埋め込み配列「$argv」を使用できます。 $argv" 配列。シェル スクリプトの実行中にパラメータを読み取るのに非常に便利です ("$argv[1]" は最初のパラメータに対応し、"$argv[2]" は 2 番目のパラメータに対応します。など) 。たとえば、次のプログラム:
#!/usr/local/bin/php -q
$first_name = $argv[1];
$last_name = $argv[2]; %s %s! 今日はどうですか?n", $first_name, $last_name);
?>
上記のコードは、実行時に 2 つのパラメータ、つまり姓と名を必要とします。たとえば、次のように実行します:
[dbrogdon @artemis dbrogdon]$ scriptname.ph Darrell Brogdon
シェル スクリプトがモニターに出力します:
こんにちは、Darrell Brogdon! 今日はどうですか?
[dbrogdon@artemis dbrogdon]$
PHP を動的 Web ページの書き込みとして使用する場合PHP がシェル スクリプト言語として使用される場合、「$argv[0]」はスクリプトのファイル名に対応し、動的言語として使用される場合は、「$ argv」配列も含まれますが、こことはいくつかの違いがあります。 Web ページの書き込みでは、「$argv[1 ]」が QueryString の最初のパラメータに対応します。
2. インタラクティブなシェル スクリプトを作成します。
シェル スクリプトが単独で実行され、インタラクティブ性が失われる場合は意味がありません。 PHP を使用してシェル スクリプトを作成する場合、ユーザーが入力した情報をどのように読み取るのでしょうか?残念ながら、PHP 自体にはユーザー入力情報を読み取るための関数やメソッドはありませんが、他の言語を模倣して、ユーザー入力情報を読み取るための関数 "read" を記述することができます:
function read() { $ fp = fopen('/dev/stdin', 'r');
$input = fgets($fp, 255);
return $input
?> 必要なもの上記の点に注意してください。この関数は Unix システムでのみ使用できます (他のシステムでは対応する変更を行う必要があります)。上記の関数は、ファイル ポインターを開き、次に 255 バイト以下の行を読み取り (これが fgets の動作です)、その後ファイル ポインターを閉じて、読み取った情報を返します。
ここで、関数「read」を使用して、以前に作成したプログラム 1 を変更して、より「対話型」にすることができます:
#!/usr/local/bin/php -q
function read( ) {
$fp = fopen('/dev/stdin', 'r');
$input = fgets($fp, $fp);
return $input; "); $first_name = read();
print("あなたの姓は何ですか? ");
$last_name = read();
print("nこんにちは、$first_name $last_name! !n");
?>
上記のプログラムを保存して実行します。予期しない内容が表示されるかもしれません: 入力の最後の行が 3 行になります。これは、「read」関数によって返される情報には、ユーザーの各行の末尾の改行文字「n」も含まれており、これは姓と名に保持されるため、末尾の改行文字である「read」が削除されます。関数を変更する必要があります:
php
function read() {
$fp = fopen('/dev/stdin', 'r');
$input = fgets($fp, 255); fp);
$input = Chop( $input); // 末尾の空白を削除します
return $input;
?>
3. 他の言語で書かれたシェル スクリプトを含める:他の言語で書かれたシェル スクリプト PHP で書かれたシェル スクリプトが含まれています。これは実際には非常に簡単な例です:
#!/bin/bash
echo これはコードの Bash セクションです
/usr/local/bin/php -q print( "これはコードンの PHP セクションです");
?>
EOF
実際には、PHP を呼び出して次のコードを解析し、それを出力してから、次のコードを再試行します:
#!/bin/bash
echo これはコードの Bash セクションです。
/usr/local/bin/php -q $myVar = 'PHP';
print("これはコードの $myVar セクションです" );
?>
EOF
2 つのコードの唯一の違いは、変数 "$myVar" が 2 回目に使用されることです。実際に、PHP は次のエラー メッセージを表示します。 - 行 2 で解析エラーが発生しました。」これは、Bash の変数も「$myVar」であり、Bash パーサーが最初に変数を置き換えるためです。この問題を解決するには、各 PHP 変数の前にエスケープ文字「」を追加する必要があります。そのため、コードは次のようになります。次のように変更されました:
#!/bin/bash
echo これはコードの Bash セクションです
/usr/local/bin/php -q $myVar = 'PHP'; (「これはコードンの $myVar セクションです」);
?>
EOF
さて、これで PHP で独自のシェル スクリプトを作成できるようになりました。うまくいくことを願っています。


http://www.bkjia.com/PHPjc/446873.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446873.html技術記事 PHP が非常に優れた動的 Web 開発言語 (高速、短い開発サイクルなど) であることは誰もが知っています。しかし、PHP を使用して S...
を書くこともできることを認識している人はほんのわずかです。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

See all articles