php の exec 関数は思っていたものと違います_PHP チュートリアル
私は長い間 php (現在の主流の開発言語として) を使用してきましたが、これまで exec などの関数に触れたことはなく、他の人の記事で言及されているものを読んだだけです。ここで、Apache(Unix プラットフォームで最も人気のある WEB サーバー プラットフォーム) のパスワードを変更するための小さな関数を書きたいと思います。実装方法は長い間明らかでしたが、exec 関数を使用するときに問題が発生しました。
exec 関数は、システム コマンド ライン コマンドを実行します。その構文は次のとおりです:
string exec (string command [, array &output [, int &return_var]] )
ここで、command は実行されるコマンド文字列、output は実行内容です。 command 出力内容は配列形式、1行が配列内のレコード、return_varは実行コマンドの戻り値です。
dos で、パラメーターを追加せずに htpasswd コマンドを直接実行すると、次のようなヘルプが表示されます:
E:cvsworksvntools>htpasswd
Usage:
htpasswd [-cmdpsD] パスワードファイル ユーザー名
htpasswd -b[cmdpsD] パスワードファイル ユーザー名パスワード
...
したがって、テスト目的で、最初に exec を使用してこのコマンドを実行し、php
(現在の主流の開発言語として) コードは次のとおりです:exec(' e:cvsworksvntoolshtpasswd. exe', $ar, $status);
for ($i=0; $i < count($ar); $i++) $ar[$i] = htmlspecialchars($ar[$i]);
$ msg = implode ('
' . "
", $ar);
echo $msg;
コードの実行にエラーはありませんが、出力がありません。なぜですか? コマンドを dir または cd に変更し、htpasswd.exe を pk に置き換えると正しく実行できます。 exe も動作します 問題ありません。これは htpasswd に関連していますか? 1 時間検索した後、ようやく問題が見つかりました。パラメータを指定せずに exec を使用して htpasswd.exe を実行すると、戻り値 $status が 2 になります。パラメータ「-nsb 1 1」、戻り値は0、出力情報は正常
1:{SHA}NWoZK3kTsExUV00Ywo1G5jlUKKs=
存在しないファイルであるhtpasswd1.exeを実行した場合、戻り値は1、かつ出力情報はありません
ということで、私の結論としては、exec関数が正常にコマンドを実行して戻り値が0の場合は出力情報がありますが、関数実行コマンドが存在しなかったり、エラーコードを返した場合には出力情報はありません。 htpasswd.exe がパラメータなしで実行された場合、ヘルプ情報は出力されますが、戻りステータスは 2 なので、exec 関数は出力情報を返しません。およびshell_execはexecに似ています。他の関数も似ているはずです
。
http://www.bkjia.com/PHPjc/508654.html

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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

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

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