ファイルの場所をパラメータとして使用するコマンド(phpファイル)があります。
例えば。
$ php ./ScriptName.php /my/file/location.txt
時には1つか2つの単語しか必要ないので、次のコマンドで参照できるようにlocation.txtファイルを作成したくありません。むしろ、そのコマンドを使用して何らかの方法でパイプすることをお勧めします。たとえば、上記のlocation.txt
例の内容を考えてみましょう。
mywords
「ダミー」ファイルの内容のみを提供するように元のコマンドラインパラメータを再構築する方法はありますか?
答え1
バリアントを使用できます/dev/fd/0
いたずらファイル名が必要なスクリプトに文字列を渡します。
php ./ScriptName.php php://fd/0 <<<'mywords'
たとえば、script.phpには次のものがあります。
<?php
$handle=fopen($argv[1],"r");
echo "Read: ".fgets($handle);
fclose($handle);
?>
ランニング:
php script.php php://fd/0 <<<'Some text'
出力:
Read: Some text
答え2
zsh、bash、kshなどのプロセス置換を許可するシェルがある場合は、次のことができます。
php ScriptName.php <(echo mywords)
シェルは他のシェルでechoコマンドを実行し、出力を名前付きfifoとして提供するか、より一般的にパイプと/dev/fd/XX形式のファイル名を介して提供する方法を設定します。