質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

2回答

3856閲覧

webサーバ(php) → クライアント(php) のデータをコマンドプロンプト上に表示させる方法

g1mkt

総合スコア15

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2016/11/17 14:52

編集2016/11/17 15:29

###前提・実現したいこと
クライアント側のコマンドプロンプトに
サーバからの受信データを表示させたいです。
通信・処理・表示の流れを①~④に記述します。

①クライアント → サーバ データを送る
②サーバは送られたデータを処理する
③サーバ → クライアント データを返信する
④クライアントは送られたデータをコマンドプロンプト上に表示する

###環境・コード
サーバ、クライアントは異なるPCです。

<サーバ>
Windows
Apache
A.php
A.phpのコードです↓うろ覚えですすみません。

php

1<?php 2// データ受け取って処理 3if($_POST['NO'] = 1) 4{ 5 $_POST['NO'] = 2; 6} 7//else if($_POST['NO'] = 3) 8//{ 9// $_POST['NO'] = 4; 10//} 11 12// 返信する処理 13echo "<html>"; 14echo "<head>"; 15echo "</head>"; 16echo "<body>"; 17echo "NO = " . $_POST['NO'] ; 18echo "</body>"; 19echo "</html>"; 20?>

<クライアント>
Windows
Apache(一応入れてす)
B.php
コマンドプロンプト上で【>php B.php】と打ち起動させます。
B.phpのコードです↓うろ覚えですすみません。

php

1<?php 2// POST送信データ 3$data = array( 4 "NO" => "1", 5); 6// クエリ? 7$data = http_build_query($data, "", "&"); 8 9// headerつける 10$header = array( 11 "Content-Type: application/x-www-form-urlencoded", 12 "Content-Length: ".strlen($data) 13); 14// オプション? 15$context = array( 16 "http" => array( 17 "method" => "POST", 18 "header" => implode("\r\n", $header), 19 "content" => $data 20 ) 21); 22// サーバのA.phpにアクセスします 23$url = "http://サーバのアドレス/A.php"; 24// 送信 25file_get_contents($url, false, stream_context_create($context)); 26?>

###発生している問題・エラーメッセージ
サーバ → クライアント のデータをクライアント側のコマンドプロンプト上に表示ができません。
ワイヤーシャークで【サーバ → クライアント】のやり取りのデータを見ますと、一応、サーバの 【// 返信する処理】<html></html>のecho の以外の文字列がクライアント側に来ているのがわかりました。
ただ、そのデータの取り出し方と、コマンドプロンプト上に表示させるやり方が見つかりませんでしたので質問
させていただきました。

よろしくお願いいたします。

###補足情報(言語/FW/ツール等のバージョンなど)
Apache(xampp)
php
コマンドプロンプト
ワイヤーシャーク

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

windows機が手元にないので動作確認はできませんが、
ワイヤーシャーク上で通信が正常になされているならば

echo file_get_contents($url, false, stream_context_create($context);

でプロンプト上に表示されませんか?

投稿2016/11/17 15:01

編集2016/11/17 15:33
hiim

総合スコア1689

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasahikoHirata

2016/11/17 15:04

内容を読むと、単純にPHPのソフトをWindowsでコマンドプロンプトで起動する形なので、単純ではないかと思ったのですが。
hiim

2016/11/17 15:08

file_get_contentsの戻り値は取得データ http://php.net/manual/ja/function.file-get-contents.php 現在windwosマシンが無いので今macで <?php echo file_get_contents("http://www.google.co.jp"); ?> という内容のb.phpを作成し、 ターミナルから php b.phpと実行するとgoogleのレスポンスが表示されたのでwindowsのコマンドプロンプトも同じでないかな?と
MasahikoHirata

2016/11/17 15:11

ですよね。だからPHPの作り方だけでは?
hiim

2016/11/17 15:19

質問よくよむとワイヤーシャークで<html>~</html>のecho の以外の文字列がクライアント側に来ているのがわかりました。 というのは echoの後ろのhtmlを""で囲む等してないからですねおそらく。うろ覚との事で実際のサーバーにあるソースは正しく書いてあるならまた別の原因ですが。
g1mkt

2016/11/17 15:28

Masa様、hiim様 echo file_get_contents();試してみます。 echo の後ろ ""で囲むの忘れていました、すみません、訂正します。
g1mkt

2016/11/24 14:24

表示できました。file_get_contentsで表示できました。有難うございました
guest

0

コマンドプロンプトと書いてあるので困惑される方も居たのでは?
結局クライアント側からコマンドを入力(コマンドラインでも)入力すれば、処理中にクライアント側にデータを出力するだけのように内容を見たら気が付いた。
それで良いのでは?

投稿2016/11/17 15:00

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問