phpファイルからメモ帳を開きたいのですが、メモ帳にはphpファイルで文字列として宣言したテキストが含まれている必要があります。基本的に、メモ帳はphpファイルから渡したテキストで開く必要があります。
7 に答える
PHP ファイルが Web サーバー上で実行されている場合、そのような新しいプロセスを Web ブラウザで開くことはできません。どんなセキュリティ ホールになるか想像できると思います。
PHP ファイルを CLI モードでローカル スクリプトとして実行している場合、バッククォートやexecなどを使用して、他のプロセスと同じようにメモ帳を起動できるはずです。
ただし、本当にこのサーバー側で実行したい場合は、 Content-Dispositionヘッダーを使用する PHP スクリプトを使用するのが最善です。
//tell client we're delivering text
header('Content-type: text/plain');
//hint that it's a downloadable file
header('Content-Disposition: attachment; filename="textfile.txt"');
//output our text
echo "The quick brown\nfox jumps over\nthe lazy dog.";
ユーザーはこのファイルを保存して、選択したエディターで開くことができます。
PHP は完全にサーバー上で実行されるため、ユーザーのマシンで PHP にウィンドウを開くことはできません。出力がブラウザーに到達するまでに、スクリプトは通常終了します。ブラウザーに要求できることと、ブラウザーが許可すること (HTML / ヘッダーなどを使用) しか実行できません。セキュリティ上の理由から、ブラウザーは、任意の Web サイトがマシンで多くのことを行うことを許可しません (またはすべきではありません)。たとえば、新しい Windows プロセスを生成することはできません。
あなたができると思う最善のことは、次のようなものです。
$string = 'a string';
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="file.txt"');
echo $string;
これにより、関連するヘッダーが送信され、ブラウザはコンテンツをプレーン テキスト タイプの file.txt というダウンロードとして扱います。ブラウザーは、ファイルの関連付けを .txt に変更していない限り、メモ帳で開く可能性が高いファイルをダウンロードするように求める必要があります。
ただし、ユーザーにアップロードを依頼しない限り、ユーザーがドキュメントに加えた変更を元に戻すことはできないため、これがあなたが達成しようとしていることに対する良い解決策であるかどうかはわかりません.
phpからプログラムを実行することは可能ですが、サーバー側のみです。
したがって、サーバーがWindowsを実行していると想像してください。サーバー側で、メモ帳が起動します。
PHPはサーバー上で実行され、クライアント側で実行されていることとは何の関係もありません。
技術的には、これを行うには、ファイルを作成し、そのファイルをパラメーターとしてシステムを実行する必要があります。このようなもの:
//String to show in notepad
$myStringToDisplay = "some text to show in notepad";
//Write this string to a file
$myFile = "somefile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $myStringToDisplay);
fclose($fh);
//Execute notepad with this file as a parameter
system("notepad.exe ".$myFile);
ただし、これは、PHP ファイルを実行しているサーバー上でメモ帳を実行することになります (システム コールがサーバー上で有効になっている場合)。これは、おそらくやりたいことではありません。PHP はクライアント マシン上でコードを実行することはできず、クライアント上で必要なプログラムを実行するためのシステム コールを作成することもできません (ありがたいことに)。それは非常に巨大なセキュリティ違反になるでしょう。
これで目的の機能が達成されない場合は、何をしようとしているのか、その理由を教えてください。これはあまり賢明な要求とは思えません。
PHP アプリケーションからプログラムを開くことはできません。ただし、PHP テキスト エディターを使用してテキスト ファイルを読み込むことはできます。話している値をロードすることもできます。
http://www.fcckeditor.net/はそのようなエディタの 1 つです。
まず、ファイルを「作成」してテキストを入力します。
シェル コマンドを実行します: echo $text >> $filename 次に実行します: notepad $filenameToOpen
それでおしまい。
PHP スクリプトからメモ帳を開くには、コマンド ライン中間フェーズを使用します。まず、次のように 1 つの php ファイルを作成します。
var_dump(popen('notepad','r'));
次に、コマンドプロンプトを開くなどの名前で保存しnotepad.php
、ファイルのパスを指定して、次のようにファイルを実行します。
d:/>wamp>www>php notepad.php
php ファイルが実行され、notpad が開きます。