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

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

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

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

Q&A

解決済

4回答

738閲覧

php書き込み掲示板作成 データ・テキスト作成方法

sarasarasara

総合スコア8

PHP

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

1グッド

2クリップ

投稿2020/03/14 09:56

編集2020/03/14 10:06

phpで掲示板を作成勉強中です。教本にはboard.txtにテキストファイルにメッセージを保存とありますが、変数に代入しただけでテキストファイルが作成されているのでしょうか。

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <p>投稿するメッセージを入力して下さい。</p> <form action="board-output.php" method="post"> <input type="text" name="message"> <input type="submit" value="投稿"> </form> </body> </html> <?php $file = 'board.txt'; if(file_exists($file)){ $board = json_decode(file_get_contents($file)); } $board[]=$_REQUEST['message']; file_put_contents($file, json_encode($board)); foreach($board as $message){ echo '<p>' ,$message, '</p><hr>'; } ?> <?php $file = 'board.txt'; if(file_exists($file)){ $board = json_decode(file_get_contents($file)); } $board[]=$_REQUEST['message']; file_put_contents($file, json_encode($board)); foreach($board as $message){ echo '<p>' ,$message, '</p><hr>'; } ?> コード
s.k👍を押しています

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

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

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

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

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

m.ts10806

2020/03/14 11:20

「教本」と書かれてますけど、すべてのPHP利用者が同じ教本を利用するわけではないでしょうし、 そもそも教本使わない層もいます。 書籍名やページ数など提示されないと誰もその成否を判断できないのではないでしょうか。 で、あっても同じ書籍を今持ってる人がたまたまいればいいですけど。 いずれにしても、自身がどのように進めているかの方が問題です。書籍丸投げで機能が分かるんでしょうか。 質問だけでなく自身が調べたこと試したことを記載してください。 本当に提示のコードが教本のままだとしたら、この教本のまま進めたとして実務で使える技術力はつかないということは明言しておきます。
sarasarasara

2020/03/14 11:46

ご指摘ありがとうございます。 では教本についてはどのように説明したらよろしいでしょうか。 書籍から勉強しようと思って始めたのですが、使えないのであればどのような勉強方法がよろしいですか? 具体的に掲示頂けると助かります。
m.ts10806

2020/03/14 11:48

PHPマニュアルを使わない学習はないですね。 書いた通りにしか動かないので、その「通り」は「仕様」なので。 書籍使うとしてもそのまま鵜のみにしてやるのは間違いですし、 「この書籍が全てだ」と思うのは危ない。 PHPマニュアルで仕様だけでなく基本的な流れ(フォーム送信やオブジェクト指向など)もあるので、そちらをしっかりとこなして自ら考えられるようになる必要があります。
sarasarasara

2020/03/14 11:52

ありがとうございます。 では何を使用して何から始めたらよろしいですか。
tanat

2020/03/14 12:13

誰にとっても理想的で効率的な学習方法は存在しないのでまずはteratailで[PHP 学習方法][プログラミング 学習方法]等で検索してみることをお勧めします。 その上で自分に合いそうな方法を試していくしかないです。
guest

回答4

0

変数に代入しただけではファイルは作成されませんが、ご提示のコードでは変数に代入しているだけではありません。ちゃんとファイルを作成し保存しています。
その教本に解説はないのですか?

いずれにしても知らない関数があれば、公式マニュアルなどで調べて、どういう働きをしているか見てみましょう。

投稿2020/03/14 10:32

Takumiboo

総合スコア2534

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

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

sarasarasara

2020/03/14 11:49

教本に具体的な説明はありませんでした。 ネットでも調べてはいますがそれでもよくわからないので質問させていただきました。 ファイルを作成し保存してあるとありますが、それはどちらの箇所にありますか。 低次元な質問ということは理解していますが、わからないものはわからないので申し訳ございません。
Takumiboo

2020/03/14 11:54

「関数」が何かは分かりますか? ご提示のコードの中にある関数を一つ一つ公式マニュアルで調べてみてください。どれかがファイルを保存する関数です。 世の中の一般的なPHP解説本などでは、学習過程の中で新たに使う関数であれば解説があるのが普通だと思うのですが、どういった層に向けた「教本」なのでしょうか。 もしPHPを学習し始めたばかりで、初学者向けでない教本を使っているのなら、まずは入門から学べるようなものに切り替えたほうが良いかもしれませんね。
guest

0

phpで掲示板を作成勉強中です。教本にはboard.txtにテキストファイルにメッセージを保存とありますが、変数に代入しただけでテキストファイルが作成されているのでしょうか。

記述コードの中の関数で、filename が存在しない場合はファイルを作成し、存在する場合はそのファイルを上書きするものがあります。

www.php.net が php の公式サイトになるので、こちらで各関数の挙動を調べてみると良いですよ。

投稿2020/03/14 10:14

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

file_put_contents で書き込みしてます。

投稿2020/03/14 11:52

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

PHP

1<?php 2$file = 'board.txt'; // $fileに保存先のファイル名を定義 3 4// この先、一部 変数名(中身) で記載します。 5if(file_exists($file)){ //もし$file(board.txt)が存在したら 6 $board = json_decode(file_get_contents($file)); //$boardに$file(board.txt)の中身をデコードし 7} 8$board[]=$_REQUEST['message']; // $boardに新たに送信されてきたmessageを入れる 9file_put_contents($file, json_encode($board)); // $file(board.txt)に$boardをエンコードして保存 10foreach($board as $message){ //$boardを分解して$messageへ 11 echo '<p>' ,$message, '</p><hr>'; // 出力 12} 13?>

かなり荒っぽく書くとこんな感じです。

(『分解』って表現、ほかにないかな、、、

投稿2020/03/14 16:56

kyoya0819

総合スコア10429

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

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

javahack

2020/03/14 18:30

普通に「配列の要素を1つずつ取り出す」で良いと思いますが。 『配列』『要素』がわからない、となったら流石にプログラミングの基礎から勉強してくださいとしか言えないと思います。
sarasarasara

2020/03/15 02:05

変数に代入するとファイルになるという意味がよくわからないのですが $file = 'board.txt';は文字列を入れただけでファイルができているのでしょうか。 それともboard.txtという文字列の中にデータを入れることができるという理解でよろしいのでしょうか。 その他のコードは理解できるのですが…
kyoya0819

2020/03/15 02:23

文字列を端に入れただけです。 そこではファイル生成は行われていません。 file_put_contentsで初めてファイルが生成されます
sarasarasara

2020/03/15 04:01

asuchi0819さんありがとうございます。理解できました。自分が読んでいる本がboard.txtというファイルという説明になっており混乱しておりました。
kyoya0819

2020/03/15 04:11

一つ一つの処理がどのようなことをしているのか、というのを https://www.php.net/manual/ja/ などで調べていくとより理解が深まると思います。 学習頑張ってください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問