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

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

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

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

Q&A

解決済

1回答

1216閲覧

if strposについて

kaity

総合スコア19

PHP

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

0グッド

0クリップ

投稿2018/11/14 07:17

入力フォームから入力された文字列データをphpで受け取りその値をテキストファイルに保存するという作業をやっています、
$filename = '◯◯.txt';
$fp = fopen($filename, 'w');
if(!$fp)
{
echo 'Could not processed!</form> </body></html>';
exit;
}

fwrite($fp,$name);
fclose($fp);

if(strpos($name, $search) !== false)
{
$contents = file_get_contents("◯◯.txt");

echo "『おめでとう!!』 <br>".date('Y m d H:i', time())." "."に ".$contents."を受け付けました";

}

else
{
$contents = file_get_contents("◯◯.txt");

echo "ご入力ありがとうございます。<br>".date('Y m d H:i', time())." "."に ".$contents."を受け付けました";

}
}
途中部分をこのような形で作成したら良いと言われたのですがどうなってるのかよくわからず…
それぞれの関数の意味は自分で調べ意味を理解したのですが 構造がよくわからなくなってしまいました。

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

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

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

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

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

m.ts10806

2018/11/14 07:21

ソースコードはマークダウンのcode機能を使ってください。質問・解説内容とコードとの境目が不明瞭となりますし、code機能では正しくコードをコピペできるようになりインデントもつけられて読みやすくなり、再現確認も容易となりますので、的確な回答が得やすくなります。https://teratail.com/help#about-markdown
m.ts10806

2018/11/14 07:22

strposについてはPHPマニュアルで仕様や例示を確認されましたか?
madoka9393

2018/11/14 07:22

現状何がどうわからないのかが(少なくとも当方には)読み取れないのでどういった回答を求められているのかがわからいなです。 タイトル通り「if(stpos())」が何をやっているのかがわからない感じなんですかね? それはさておき一番下の「}」が余分ですね。
dice142

2018/11/14 07:24

質問文に質問が書いてませんが、タイトル通り「strpos」がなんなのかでいいのでしょうか?
takasima20

2018/11/14 07:26

もう少し、「何をしてほしいのか」が分かるように質問を変えてみてはいかがでしょうか?
guest

回答1

0

ベストアンサー

一行単位でコメント記載してみました

PHP

1// POSTで送られたデータが空白ではないかチェック 2// ※filter_input使うべき論は現状無視 3if(empty($_POST['namae']) === false) { 4 // 空白ではないとき 5 6 // 書き込むファイル名決定 7 $filename = '◯◯.txt'; 8 // 書き込むファイルを開く(上書きで開く) 9 $fp = fopen($filename, 'w'); 10 // 開けなかったりしてるかのチェック 11 if(!$fp) 12 { 13 // 開けなかったりしたとき 14 15 // エラー時に出す文章 16 echo 'Could not processed!</form> </body></html>'; 17 // プログラム終了 18 exit; 19 } 20 // 書き込むファイルに$name変数の中身を書き込む 21 fwrite($fp,$name); 22 // 書き込むファイルを閉じる 23 fclose($fp); 24 25 // $name変数の中身(文字列)に$search変数の中身(文字列)が存在するかチェック 26 // !== falseな理由は 27 // http://php.net/manual/ja/function.strpos.php 28 if(strpos($name, $search) !== false) 29 { 30 // チェックしてあったとき 31 32 // ◯◯.txtファイルの中身を$contentsに取得 33 $contents = file_get_contents("◯◯.txt"); 34 35 // 表示させる文章 36 echo "『おめでとう!!』 <br>".date('Y m d H:i', time())." "."に ".$contents."を受け付けました"; 37 } 38 else 39 { 40 // チェックしてなかったとき 41 42 // ◯◯.txtファイルの中身を$contentsに取得 43 $contents = file_get_contents("◯◯.txt"); 44 45 // 表示させる文章 46 echo "ご入力ありがとうございます。<br>".date('Y m d H:i', time())." "."に ".$contents."を受け付けました"; 47 } 48}

投稿2018/11/14 07:52

編集2018/11/14 08:30
rururu3

総合スコア5545

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

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

kaity

2018/11/14 08:17

回答ありがとうございます。 とてもわかりやすくて理解することができました。 このうえのコードに <html> <head> <meta charset="utf-8"> <title>mission_1-5</title> </head> <body> <form method="POST" action="○◯php"> <input type="search" name="namae" value="コメント"> <input type="submit" value="送信"> </form> というコードがあります。 入力フォームから入力された文字列データをPHPで受け取り、その値を新しいテキストファイルに保存する。ただし、フォームが空白で送信された場合は、動かない設定にすること。 また特定の文字列 "完成"の場合のみ特別な表示 "おめでとう!"がされるギミックを組み込んで見る。 データの受け取り方はPOSTでやりたいです。 このような場合には残りどのような作業が必要になるのでしょうか・・・
rururu3

2018/11/14 08:26

質問されているプログラムの最初の行以前にHTMLがあるんですね。 まあ、POSTで送られたデータが空白だった場合はPHP処理したくないだけでしょうから、 `if(empty($_POST['namae']) === false) {`で入力されているかチェックしたらいいですよ まあ、とりあえず回答修正しておきます。
rururu3

2018/11/14 08:34

ちょっと真面目にチェックするなら+αでtrim関数使いましょう
kaity

2018/11/14 09:53

わかりづらい質問で申し訳ないです。 ありがとうございました泣
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問