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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

226閲覧

count関数と同じことをexplodeでやりたいです

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/10/21 09:06

編集2020/10/21 09:49

前提・実現したいこと

投稿番号の取得をしたいです
fileがあればcount関数で数える→+1して投稿番号にする
なければ投稿番号=1にするのが手っ取り早いのはわかりますが
explodeでもできると聞いて試してみましたがうまくいきません

①filenameをexplodeで要素(番号、名前など)ごとに分ける
②$aをつくり、filenameの行数と同じ数字になるまで+1する(ここでcountを再現したい
③$aで出た最終行を$nuに
$nuの最初の要素(番号)を$numに

という形をとればcount関数の代用ができるのかと思い書いてみました
調べてやりましたが、皆様からしたらexolodeについて全然理解していない質問かもしれません
思ったことがあればどんどん教えてください

発生している問題・エラーメッセージ

番号が表示されません
番号<>名前<>コメント<>時間としたいのですが
<>名前<>コメント<>時間になります

該当のソースコード

PHP
ソースコード

PHP

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>mission_3-1</title> 6</head> 7<body> 8 9 <form action="" method="post"> 10    <input type="text" name="namae" value="名前"> 11    <input type="text" name="comment" value="コメント"> 12     <input type="submit" name="sousin"> 13  </form> 14 15<?php 16 $filename="mission_3-1.txt"; 17 18//入力フォームのデータを受け取る 19 $namae= ($_POST["namae"]); 20 $comment = ($_POST["comment"]); 21//日付データを取得 22 $date = date("Y年m月d日 H:i:s"); 23//ファイルの存在がある場合は投稿番号+1、なかったら1を指定する 24 if (file_exists($filename)) { 25   $n = explode("<>",$filename); 26   for($a=0; $a<$filename;$a++){ 27 $nu = $n[$a]; 28 $num = $nu[0]; 29 } 30 } else { 31 $num = 1; 32 } 33//書き込む文字列を組み合わせた変数 34 $format = $num."<>".$namae."<>".$comment."<>".$date; 35 36//もしフォームが空じゃなかったら書き込みをする 37 if (!empty($namae)||!empty($comment)){ 38 $fp = fopen($filename,'a'); 39 fwrite($fp, $format."\n"); 40 fclose($fp); 41 } 42?> 43</body> 44</html>

試したこと

番号取得をする質問を探したのですが
どれもcountを使っていました

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

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

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

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

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

maisumakun

2020/10/21 09:19

> explodeでもできると聞いて試してみましたがうまくいきません explodeで行うことで、どのようなメリットがあるとお考えでしょうか?
m.ts10806

2020/10/21 09:30

コードはマークダウンのcode機能を利用してご提示ください。インデントの問題含めてコードが読みづらすぎます。 質問は編集できますので適宜対応してください
退会済みユーザー

退会済みユーザー

2020/10/21 09:35

メリットがあるとは考えていません! 他の人がみんなcountを使っていることからもわかる通りcountの方が簡潔に書けますし ただexplodeはそこそこ使う関数だと思います せっかくなのでここで使い方を覚えたいと思いました!
退会済みユーザー

退会済みユーザー

2020/10/21 09:36

わかりました 読みやすいように書き換えしておきます
maisumakun

2020/10/21 09:40

> ただexplodeはそこそこ使う関数だと思います せっかくなのでここで使い方を覚えたいと思いました! まったく目的に合った使い方ではないので、四苦八苦して無理に使うほうが不毛かと思います。
m.ts10806

2020/10/21 09:40

「書き換え」ではなく「マークダウンのcode機能を利用」です。 マークダウンのcode機能を利用しないとどんなに行頭インデントつけても詰められます。 1つ前の質問で参考リンクは提示しています。
m.ts10806

2020/10/21 09:56

> ただexplodeはそこそこ使う関数だと思います うーん。言うほど使いませんね。 むしろ使わなくて良いように設計、実装することもあるくらいで。 それだけ文字列操作は、他に幾らでもベターな対応手段があるとも言えます。
退会済みユーザー

退会済みユーザー

2020/10/21 10:03

maisumakunさん 僕も最初はcount使ってこの先まで進んでいるのですが 同じ班の人がインターンの運営にここの質問をしたところ「explode使ってみよう」と言われたらしくて····· 運営側も実用性ないのはわかった上でやり方を覚えさせるためにexplodeを使わせようとしていのだとは思うんですが····· 言われた以上は一応やり方を確認しておこうと思いまして 教材が微妙とかそういうのは前の質問でもたくさん言われたました·····
退会済みユーザー

退会済みユーザー

2020/10/21 10:06

m.ts 10806さん なぜ運営がexplode推してきたのかわからなくなりました····· あと表示形式変えてみましたがどうでしょうか?
m.ts10806

2020/10/21 10:15

運営?前提や背景知らないのでなんとも。
m.ts10806

2020/10/21 10:15

ひとまず使い方ならPHPマニュアルで十分です。サンプルコードもあります。
m.ts10806

2020/10/21 10:27

>あと表示形式変えてみましたがどうでしょうか? マークダウンについてはひとまずOKかと思います。 あくまでそういう記述形式なので、任意の数設けられる=ファイル毎にわけるなども可能 ということは覚えておいてください。(1クリックでコピペできるので、回答者側もありがたいのです)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問