サーバーにあるファイルの内容を表示

このQ&Aのポイント
  • 自分のサーバで温度データを測定しそれをweb公開したいと考えています。No.1
  • サーバー上でファイルの内容を表示するために、JavascriptとPHPの両方を使用しています。
  • Javascriptでの表示では、クライアントのパソコンがファイルを読みに行ってしまうため、PHPでの表示方法を採用しています。ただし、画面の更新が気になる点があります。
回答を見る
  • ベストアンサー

サーバーにあるファイルの内容を表示

自分のサーバで温度データを測定しそれを web公開したいと考えています。No.1 <html> <head> <title>サンプル</title> <script type="text/javascript"> <!-- function jikoku() { iomode=1; format=0;//ASCII format //file object myobject=new ActiveXObject("Scripting.FileSystemObject"); //file open file=myobject.OpenTextFile("c:\\Log.txt",iomode,true,format); //read until eof dd=""; while(!file.AtEndOfStream){ dd+=file.ReadLine()+"\n"; } file.Close(); //display document.F1.T1.value = dd; window.setTimeout("jikoku()", 1000); } // --> </script> </head> <body onload="jikoku()"> <form name="F1" action="#"> <input type="text" name="T1" size=50> </form> </body> </html> のプログラムをつくり うまくいったと思ったのですが Javascriptのため クライアントのパソコンではクライアントの c:\\Log.txtを読みに行ってしまうので ダメなことが分かりました。 そこで PHPで No.2 <html> <meta http-equiv="refresh" content="60"> <head> <title>温度・湿度</title> </head> <body> <?php $file = fopen("C:\\Log.txt","r"); $dd = fgets($file); print("$dd"); fclose($file); ?> </body> を作って 大体のところうまく表示できたのですが 画面を refreshしているところが なんとも 気になります。 サーバー上の プログラムを読んで  No.1のような 表示はできないでしょうか・・・・ C:\\Log.txtの更新間隔は いまのところ 1分間隔です。 Javascriptと PHPで できると思うのですが・・・・ よろしく お願いします。

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
noname#94983
noname#94983
回答No.1

JavaScriptで、XMLHttpRequestを使い、サーバから非同期通信でデータを受け取り処理する。タイマーイベントを使い、定期的にデータを取ってくるようにすればいい。 これは、一般にAjaxといわれる技術。Ajaxで検索すれば、具体的なコーディング方法はたくさん出てくると思う。

ms510723
質問者

補足

AJAXでやってみました。 <html lang="ja"> <head> <meta http-equiv="Content-Type" Content="text/html;charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>温度・湿度測定</title> <script type="text/javascript"> <!-- var xmlHttp; var dd; function loadText(){ if (window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); }else{ if (window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }else{ xmlHttp = null; } } xmlHttp.onreadystatechange = checkStatus; xmlHttp.open("post", "http:****************", true); xmlHttp.send(null); window.setTimeout("loadText()", 1000); } function checkStatus(){ if (xmlHttp.readyState == 4 && xmlHttp.status == 200){ dd = xmlHttp.responseText;   document.F1.T1.value = dd; } } // --> </script> </head> <body onload="loadText()"> <form name="F1" action="#"> <input type="text" name="T1" size=50> </form> </body> </html> こんな感じです。 getでは キャッシュを読むらしく更新できずPOSTに してみました。 あと 非同期では 更新しないみたい・・・・・ 大体のところ うまくいったので とりあえず満足です。 ありがとうございました。

関連するQ&A

  • 現在時刻を表示させたい!

    JavaScriptで、画面上に現在の時刻を表示させたいのですが、 <HEAD> <script type="text/javascript"> <!-- function jikoku() { dd = new Date(); document.F1.T1.value = dd.toLocaleString(); window.setTimeout("jikoku()", 1000); } // --> </script> </HEAD> <BODY onload="jikoku()"> <form name="F1" action="#"> <input type="text" name="T1" size=50> </form> </BODY> </HTML> とタグを打つと、「西暦/月/日にち/曜日/時刻/~」 と細かく出てきてしまいます。 ほんとうは、時刻以下、曜日から西暦までは必要ないんです。 現在時刻のみ(23:25:31)といった具合に×時×分×秒 の部分だけ表示させたいんです。 どうしたらいいか、教えてください。 お願いします。

  • ファイルの書込みができません 教えてください

    今 ファイルの書き込みを作成しているのですが。以下のプログラムではテキストの方に書き出しされません。何処が悪いのかわかりません。 わかる方教えてください。 <html> <head> <title>file2</title> <meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> </head> <body> <?php $file_name="file2.txt"; $fh=fopen($file_name,"w+"); fwrite($fh,"1行目です?n2行目です"); fclose($fh); print "ファイルの書込完了"; ?> </body> </html> ファイルの書込完了とはでるのですが。

    • ベストアンサー
    • PHP
  • ファイルのアップロード処理を確認画面で確認後にアップロードするようにし

    ファイルのアップロード処理を確認画面で確認後にアップロードするようにしたいのですが、プログラムの書き方がわかりません。確認画面を通さずにやればアップロードできるのですが。どうすればいいのか教えてもらえるとうれしいです。 流れとしては「アップロード画面でファイルを指定」→「確認画面でアップロードボタンを押す」→「アップロード結果画面」です。作成中のソースは以下のようになっています。 ■upload.html(アップロード画面) <html><head><title>アップロード画面</title></head><body> <form action="kakunin.php" method="post" enctype="multipart/form-data"> ファイル:<br> <input type="file" name="upfile" size="30"><br> <input type="submit" value="確認画面へ"> </form></body></html> ■kakunin.php(確認画面)<未完成> <html><head><title>確認画面</title></head><body> <?php $upfile=$_POST['upfile']; print "選択したファイル: $upfile<br>\n"; ?> <br>この内容でよろしいですか?<br> よろしければ「アップロード」ボタンを押してください。<br> <form action="uploadkekka.php" method="post" enctype="multipart/form-data"> <input type="submit" value="アップロード"> </form></body></html> ■uploadkekka.php <html><head><title>アップロード結果</title></head><body> <p><?php if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "uploadfiles/" . $_FILES["upfile"]["name"])) { chmod("uploadfiles/" . $_FILES["upfile"]["name"], 0644); echo $_FILES["upfile"]["name"] . "をアップロードしました。"; } else { echo "ファイルをアップロードできませんでした。"; } } else { echo "ファイルが選択されていません。"; } ?> </p></body></html>

    • ベストアンサー
    • PHP
  • PHPでファイルのアップロード

    OSはLinuxのfedoraを利用しており、WebサーバーソフトはApacheを利用しています。 PHPを使って、クライアントからサーバーにファイルのアップロードをしたいのですが、プログラミングがあまり理解できておらず、アップロードができません。ちなみにphp.iniファイルの設定に関しては、アップロードは受け付けるようにしていますし、設定にミスはないと思います。 sample.phpというファイル名で下記のファイルを作ってみたのですが、アップロードすることができませんでした。まだPHPは初心者で間違いだらけだと思うのですが、こうすればアップロードできるようになるといった指摘をお願い致します。 <html> <head> <title> </title> </head> <body> <form enctype="multipart/form-data" action="sample.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> Send this file: <input name="userfile" type="file"> <input type="submit" value="Send File"> </form> <?php if(isset($uploadfile) and is_uploaded_file($uploadfile)) { if(move_uploaded_file($uploadfile, $path . "/var/www/html/test/" . $uploadfile_name)){ print("<br>Uploaded file saved."); }else{ print("<br>Uploaded file save failed."); } } ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHPでのファイルオープンの仕方について

    いつもこちらで勉強させていただいております。 初歩的な質問になるかもしれませんが、ご教授いただけたら幸いです。 windows7にて、VMware playerという仮想PCを作成するソフトを使い、Ubuntu(Linax)上でPHPの学習を行っております。 聞きたいこととしては、以下のプログラムを実行すると、 OPENエラー test.txt  と表示されるのはなぜなのか、ということです。 <html> <head> <title> ファイルにデータを書き込む </title> </head> <body> <?php $file_name = "test.txt"; $file = fopen($file_name, "a") or die("OPENエラー $file_name"); flock($file, LOCK_EX); $string = "文字列を書き込む"; fputs($file, $string); flock($file, LOCK_UN); fclose($file); ?> </body> </html> 参考書に載っていたプログラムそのまま書いたつもりですが、何がダメなのかが解りません。 設定ファイルか何かに特別なことをしなければいけないのでしょうか? 初歩的な質問になるかもしれませんが、聞ける人がいなく困っております。どなたかご存知の方がいらっしゃったら、教えて下さい。 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • 掲示板のTEXTARERについて

    過去に同じような質問もありましたが、いろいろ検索してこちらの過去ログを拝見しても解決できなかったので質問させてください。 phpで掲示板をつくったのですが、textarerで改行すると表示が改行されてしまいます。 1回の書込みで1つの表示にするにはどうしたらようでしょうか。 下が問題のソースです。 <?php $body = $_REQUEST["body"]; $body = $body."\n"; if($_REQUEST["write"] != ""){ $fp = fopen("../php/test1.txt","a"); fputs($fp,$body); fclose($fp); } ?> <html> <head> <title>一行掲示板2</title> </head> <body> <b>一行掲示板</b><br><br> 書き込む内容を入力してください。<br><hr> <form name="form" action="<?php print $_SERVER['PHP_SELF']; ?>" method="POST"> <textarea name="body" rows="5" cols="50"></textarea> <input name="write" type="submit" value="書込"><hr> <?php $data = file("../php/test1.txt"); for($i=0; $i<sizeof($data); $i++){ print "記事NO.${i}:${data[$i]}<br>\n<hr>"; } ?> </form> </body> </html> わかる方おりましたらご教授お願いします。

    • ベストアンサー
    • PHP
  • PHPの実行結果を、htmlファイルで表示

    拡張子.htmlのファイルに、PHPで書き込んだカウンタの数字が表示できない ので、質問します。以下がプログラムです。 counter1.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Translational//EN//" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head><title>PHP TEST</title></head> <body> <base font size="5"> htmlファイルにPHPの結果を表示できない。 </br> PHPファイルにhtmlを書き加える。 <?php $counter_file = 'counter.txt'; $counter_lenght = 8; $fp = fopen($counter_file, 'r+'); if ($fp){ if (flock($fp, LOCK_EX)){ $counter = fgets($fp, $counter_lenght); $counter++; rewind($fp); if (fwrite($fp, $counter) === FALSE){ print('ファイル書き込みに失敗しました'); } flock($fp, LOCK_UN); } } fclose($fp); print('count:'.$counter); ?> </body> </html> ------------------------------------------------------------------------ counter1.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html;charset=shift_jis"> <title>質問内容</title> <base href="file:///C:\Users\Public\Documents/" target="_blank"> <script language="JavaScript" src="hoge3.php"> </script> </head> <body bgcolor="#66ccff"> <h1>更新ボタンを押す度増加</h1> <?php require "counter1.php"?>回 <a href ="counter1.php"> </a> <img src ="counter1.php"> </img> </body> </html> -------------------------------------------------------------------------- Apacheのhttpd.confに追加した行 AddType application/x-httpd-php .html 以上のコードと設定で、自分のパソコンで.htmlのファイルにアクセスすると、 一応カウンタの数字は表示されました。(X)の画像も表示されました。 しかし、これからプロバイダー(ぷらら)が提供するホームページのサービスを利用するとき、 最初に表示するページは、index.htmlにしてください。とありそのページにPHPで作ったカウンタの数字を表示させたいのです。 どなたか、index.htmlにPHPの処理結果を表示する方法を教えてください。お願いします。

    • ベストアンサー
    • PHP
  • phpでのファイルアップロード

    ファイルのアップロードについてご質問があります。 宜しくお願いします。 基礎phpという本でファイルをアップロードするサンプルがあり、このスクリプトでアップロードされたファイルを格納する『upload』というディレクトリをサーバに作成し、スクリプトを実行して、実際にファイルがアップロードできているかffftpにて『upload』ディレクトリの中を見てみると、なにも表示されませんでした。しかしブラウザから http://myドメイン/upload/ファイル名 にアクセスすると表示されます。 ですのでアップロードはできているがファイルが見えないという状態になっております。また『upload』ディレクトリの削除などもできなくなってしまいます。 サーバの設定が関係しているのかとも思ったのですが、サーバの設定を変更することはできないので、プログラムがわで何とかできないでしょうか? 大変申し訳ありませんが宜しくお願いいたします。 以下がそのコードです。 【up.html】 <html> <head><title>File Uploader</title></head> <body> <form method="post" enctype="multipart/form-data" action="up.php"> <input type="file" name="upfile"> <input type="submit" value="upload"> </form> </body> </html> 【up.php】 <html> <head><title>File Uploader</title></head> <body> <p> file uploader </p> <?php $updir = "./upload/"; $filename = $_FILES['upfile']['name']; if (move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename) == FALSE){ print("Upload failed..."); print($_FILES['upfile']['error']); }else { print("<b>" . $filename . "</b> uploaded!"); } ?> </body> </html>

    • ベストアンサー
    • PHP
  • 簡単なPHPスクリプトを動的に生成したい

    PHPスクリプトを動的に生成することは可能でしょうか? たとえば [ index.php ] <html> <head></head> <body>  <?php   print file_get_contents('format.txt');  ?> </boy> </html> [ format.txt ] echo "aaa"; のようにスクリプトをformat.txtに記述しておき それをindex.phpを読み込んだときに展開するのです。 しかし、上記のスクリプトを実行するとecho "aaa";と表示され、 aaaとは表示してくれませんでした。 PHPでこういう動的にスクリプトを展開するようなことは出来ないのでしょうか?

    • ベストアンサー
    • PHP
  • Javascriptで表示のページをPHPで読む

    Javascriptを使って表示されているウェブのコンテンツをPHPで読み込む方法について教えてください。 HTMLで作られている場合は「file_get_contents」でHTMLソースを取得できますが、Javascriptを使って表示されたページのソースを読み込むにはどのようにしたらよいのでしょうか。 読み込みたいページは下記のような構造になっています。 <html> <head> </head> <body> <h2>タイトル</h2> //ここのコンテンツ部分がJavascriptをONにしないと見えない。 </body> </html>

    • ベストアンサー
    • PHP

専門家に質問してみよう