- ベストアンサー
PHPのサンプルプログラム
お世話になります。 以下の様なPHPのサンプルプログラムがあったのでコピーして、localhost で走らせてみましたが、ブラウザの画面は真っ白で何も起こりません。 キーボードから何かを入れてリターンキーを押すとそれがスクリーンに表示されるものと考えていましたが、そうではないのでしょうか? 詳しい方、何かヒントを頂けると有り難いです。 よろしくお願いいたします。 サンプルプログラム: <?php $f = fopen( 'php://stdin', 'r' ); while( $line = fgets( $f ) ) { echo $line; } fclose( $f ); ?>
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 以下の点を確認してみてください。 1.コマンドラインでPHPスクリプトを実行する場合、 phpコマンドを明示的に指定する必要があります。 次のようにコマンドを修正してみてください。 C:\xampp\htdocs\PHP_by_Exaple\ch03>php listing03_01.php 2.PHPスクリプトが存在するディレクトリに移動してから実行する ことを確認してください。次のように移動します。 cd C:\xampp\htdocs\PHP_by_Exaple\ch03 php listing03_01.php 3.このスクリプトは標準入力(stdin)からデータを読み取るため、 コマンドラインで実行しても何も表示されません。 代わりに、次のように標準入力としてファイルを渡すか、 直接入力する必要があります 1)標準入力としてファイルを渡す php listing03_01.php < input.txt 2)直接入力する(入力後にEnterキーを押すと入力内容が表示されます。) php listing03_01.php これらを試してみて、正しく動作するか確認してみてください。
その他の回答 (2)
- asciiz
- ベストアンサー率70% (6803/9674)
ブラウザで実行すると、標準入力(stdin)は使えません。(標準出力(stdout)・エラー出力(stderr)についてはコンソールログに残りますが) 次のページのように、VSCodeの「ターミナル」を開き、phpコマンドにスクリプトファイル名を与えることで実行してみましょう。 >PHPをコマンドラインで実行する|きのした >https://note.com/ki_no_shi/n/n4be48d60b2bb
お礼
ご回答をいただき、有難うございます。 残念ながら、VSCode のターミナルはまだ使ったことがなくて、ご提示いただいたサイトを少し研究してから再度挑戦してみようと思います。
- retorofan
- ベストアンサー率34% (435/1276)
PHPのスクリプトがブラウザで動作しない理由は、 このコードがCLI(コマンドラインインターフェース)で 動作することを想定しているからです。 php://stdin これは、標準入力からデータを読み取るために使われるので、 ブラウザからは入力を受け取れません。
お礼
早速にご回答をいただき、有難うございます。 実際にコマンドラインでも試してみました。 コマンドラインでこのコードのあるフォルダーまで行き C:\xampp\htdocs\PHP_by_Exaple\ch03>listing03_01.php を実行してみましたが、このコードをコピーしてあるVSCodeに戻ってきてしまいます。どうしてでしょうか?
お礼
再度ご回答いただき、有難うございます。 CD コマンドで目的のフォルダーまで移動し、プロンプトから php listing03_01.php と入力したら出来ました。 キーボードから文字を入力してリターンキーを押して、入力した文字が表示されました。 最初にコマンドラインから入れたときにはPHPファイルそのものだったのでコマンドとして認識されませんでしたが、今回はファイル名の前に php というコマンドをつけたので認識されました。 PHPファイルそのものは単なるテキストファイルであり、コンパイルされた実行ファイルではないので、そのまま実行される訳がないですよね。 php listing03_01.phpというコマンド・プラス・ファイル名の形を忘れていました。いい勉強になりました。