🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

PHP

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

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Q&A

解決済

4回答

1726閲覧

テキストファイルから最大値を取得し、最大値にプラス1したい

huku

総合スコア18

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

PHP

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

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

1グッド

2クリップ

投稿2020/01/07 00:56

編集2020/01/23 07:40

現在phpで掲示板を作っています。
ファイルは"231536_receive.txt"とindex.phpの二つで構成していて、index.phpの中で入力した内容を"231536_receive.txt"に保存して表示する形にしています。
コード全体は下に貼っています。
今までは段落数で投稿番号をつけていたのですが、投稿番号の最大値を取得して最大値にプラス1をした投稿番号をつけたいと考えています。
そこで、コードを書いたのですが、なぜか1が二回登場してしまいます。
このバグの処理の仕方がわかりません。
力を貸していただきたいです。
よろしくお願いします。
2個目のコードも試しましたがまたもや1が二回でで来てしまいました。
三つ目のコードも試しましたが、同じく1が二回出てしまいます。

コードをクロームの検証機能で検証したところ、1が二個出現する一つ目の1に*がついておりカーソルを合わせるとufeffが出てきました。これは解決の糸口になるのでしょうか?

php

1$file="231536_receive.txt"; 2$count=1; 3$files = file('231536_receive.txt'); 4 5if (file_exists($file)) { 6 // 2ループ処理 7 for ($i=1; $i<count($files); $i++){ 8 $numraw = explode("<>", trim($files[$i])); 9 $numpoint = $numraw[0]; 10 // 最大値より配列の値が大きければ上書きをする 11 if($count <= $numpoint){ 12 $count=$numpoint; 13 $count=++$count; 14 } 15 } 16} else { 17 $count = 1; 18 }

php

1$file="231536_receive.txt"; 2if (file_exists($file)) { 3 $files = file('231536_receive.txt'); 4 $lastLine = $files[count($files) -1]; 5 $num = explode('<>', $lastLine)[0]; 6 $count=(int)$num +1; 7 8} else { 9 $count = 1; 10 } 11 12

php

1$file="231536_receive.txt"; 2 3 if(file_exists($file)) 4 { 5 $text_file = file($file);//ファイルがあったら、ファイルを配列化する 6 $last_toukou=end($text_file);//最後の投稿の要素を取り出す 7 $divide_end_number=explode("<>",$last_toukou);//最後の投稿の要素を、さらに<>で分割する 8 $count=(int)$divide_end_number[0]+1;//投稿番号の部分を取り出し、投稿番号が「最後の投稿の番号+1」の数になるように設定 9 10 } 11 else 12 { 13 $count=1;//ファイルがなかったら「投稿番号=1」 14 }; 15

php

1 2 3<?php 4 5 6// $file="231536_receive.txt"; 7// if (file_exists($file)) { 8// $count = count(file($file))+1; 9// } else { 10// $count = 1; 11// } 12 13$file="231536_receive.txt"; 14$count=1; 15$files = file('231536_receive.txt'); 16 17if (file_exists($file)) { 18 // 2ループ処理 19 for ($i=1; $i<count($files); $i++){ 20 $numraw = explode("<>", trim($files[$i])); 21 $numpoint = $numraw[0]; 22 // 最大値より配列の値が大きければ上書きをする 23 if($count <= $numpoint){ 24 $count=$numpoint; 25 $count=++$count; 26 } 27 } 28} else { 29 $count = 1; 30 } 31 32 33$err_msg1 = ""; 34$err_msg2 = ""; 35$err_msg7= ""; 36$message =""; 37$passmessage=""; 38$edfile = file('231536_receive.txt'); 39$name=( isset( $_POST["name"] ) === true ) ?$_POST["name"]: ""; 40$text=( isset( $_POST["text"] ) === true ) ?$_POST["text"]: ""; 41$password=( isset( $_POST["password"] ) === true ) ?$_POST["password"]: ""; 42$data=($count."<>".$name."<>".$text."<>" .date('H:i:s')."<>".$password."\n"); 43 44if ( isset($_POST["posting"] ) === true ) { 45 if ( $name === "" ) $err_msg1 = "名前を入力してください"; 46 if ( $text === "" ) $err_msg2 = "コメントを入力してください"; 47 if ( $password === "" ) $err_msg7 = "パスワードを入力してください"; 48 if ( ($err_msg1 === "") && ($err_msg2 === "") && ($err_msg7 === "") ) { 49 $fp = fopen( "231536_receive.txt" ,"a" ); 50 fwrite($fp , $data); 51 $message = "投稿に成功しました。"; 52 fclose($fp); 53 } 54} 55 56 57 58 59 60 61// 編集フォーム 62$err_msg3 = ""; 63$err_msg4 = ""; 64$err_msg5 = ""; 65$err_msg9 = ""; 66$message2 =""; 67$edfile = file('231536_receive.txt'); 68$renum=( isset( $_POST["renum"] ) === true ) ?$_POST["renum"]: ""; 69$rename=( isset( $_POST["rename"] ) === true ) ?$_POST["rename"]: ""; 70$retext=( isset( $_POST["retext"] ) === true ) ?$_POST["retext"]: ""; 71$pass2ed=( isset( $_POST["pass2ed"] ) === true ) ?$_POST["pass2ed"]: ""; 72$redata=($renum."<>".$rename."<>".$retext."<>" .date('H:i:s')."<>".$pass2ed."\n"); 73 74if ( isset($_POST["edit"] ) === true ) { 75 76 if ( $renum === "" ) $err_msg3 = "番号を入力してください"; 77 if ( $rename === "" ) $err_msg4 = "名前を入力してください"; 78 if ( $retext === "" ) $err_msg5 = "コメントを入力してください"; 79 if ( $pass2ed === "" ) $err_msg9 = "パスワードを入力してください"; 80 81 if ( ($err_msg3 === "") && ($err_msg4 === "") && ($err_msg5 === "") && ($err_msg9 === "") ) { 82 $fp = fopen("231536_receive.txt", "w"); 83 for ($i = 0; $i < count($edfile); $i++) { 84 $editraw = explode("<>", trim($edfile[$i])); // <-- trim()をつけないとパスワードに改行コードがツイたまま。 85 86 if ($editraw[0] !== $renum) { 87 fwrite($fp, $edfile[$i]); 88 } 89 else { // <-- 投稿番号と編集番号が一致 90 if ($editraw[4] === $pass2ed){ 91 fwrite($fp, $redata); 92 $message2 = "編集に成功しました。"; 93 } 94 else { 95 fwrite($fp, $edfile[$i]); 96 $message2 = "編集に失敗しました。パスワードが間違っています。"; 97 } 98 } 99 } 100 if ($message2 === '') { 101 $message2 = "編集に失敗しました。編集番号が一致しませんでした。"; 102 } 103 } 104} 105 // 消去フォーム 106 $err_msg6 = ""; 107 $err_msg8 = ""; 108 $delfile = file('231536_receive.txt'); 109 $delete = ( isset( $_POST["delete"] ) === true ) ? $_POST["delete"] : ""; 110 $pass3del = ( isset( $_POST["pass3del"] ) === true ) ? $_POST["pass3del"] : ""; 111 112 113 114 if ( isset($_POST["delete"] ) === true ) { 115 if ( $delete === "" ) $err_msg6 = "番号を入力してください"; 116 if ( $pass3del === "" ) $err_msg8 = "パスワードを入力してください"; 117 118 if ( ($err_msg6 === "") && ($err_msg8 === "") ) { 119 $fp = fopen("231536_receive.txt", "w"); 120 for ($i = 0; $i < count($delfile); $i++) { 121 $deldata = explode( "<>", trim($delfile[$i]) ); 122 if ( $deldata[0] !== $delete ) { 123 fwrite($fp, $delfile[$i]); 124 } 125 else { 126 if ($deldata[4] === $pass3del) { 127 $err_msg6 = $delete . "番の消去に成功しました。"; 128 129 } 130 else { 131 $err_msg8 = $delete . "番の消去に失敗しました。パスワードが間違っています。"; 132 fwrite($fp, $delfile[$i]); 133 } 134 } 135 } 136 if ( ($err_msg6 === '') && ($err_msg8 === '') ) { 137 $err_msg6 = $delete . '番に一致するものを見つけられませんでした。'; 138 } 139 } 140 } 141 142?> 143 144<!DOCTYPE html> 145<html lang="ja"> 146<head> 147<meta charset="UTF-8"> 148<title>掲示板</title> 149 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 150 <link rel="stylesheet" href="./styles.css" type="text/css"> 151</head> 152<body> 153<h1>掲示板</h1> 154<section> 155 <h2>新規投稿</h2> 156 <form action="index.php" method="post"> 157  名前 : <input type="text" name="name" > <?php echo $err_msg1; ?><br> 158 コメント: <input type="text" name="text" > <?php echo $err_msg2; ?><br> 159 パスワードを設定 <input type="text" name="password" > <?php echo $err_msg7; ?> 160 <input type="submit" value="投稿" name="posting"><br> 161 <?php echo $message; ?> 162 </form> 163 164 165 <h2>投稿編集</h2> 166 <form action="index.php" method="post"> 167 編集番号 <input type="number" name="renum"> <?php echo $err_msg3; ?><br> 168 名前: <input type="text" name="rename" ><?php echo $err_msg4; ?><br> 169 コメント: <input type="text" name="retext" > <?php echo $err_msg5; ?><br> 170 パスワードを入力 <input type="text" name="pass2ed" ><?php echo $err_msg9; ?><br> 171 <input type="submit" value="編集" name="edit"><br> 172 <?php echo $message2; ?> 173 </form> 174 175 176 177 178 <h2>消去</h2> 179 <form action="index.php" method="post"> 180 消去番号 <input type="number" name="delete">     <?php echo $err_msg6; ?><br> 181 パスワードを入力 <input type="text" name="pass3del" > <?php echo $err_msg8; ?><br> 182 <input type="submit" value="消去">  <br> 183 </form> 184 185</section> 186<section> 187 <h2>投稿一覧</h2> 188</section> 189 190<?php 191// 読み込むファイル名の指定 192$file_name = "231536_receive.txt"; 193// ファイルを全て配列に入れる 194$ret_array = file( $file_name ); 195 196// 取得したファイルデータ(配列)を全て表示する 197for( $i = 0; $i < count($ret_array); ++$i ) { 198 $echo_array = explode("<>", $ret_array[$i]); 199 200// // 配列を順番に表示する 201 echo ( $echo_array[0]."<>".$echo_array[1]."<>".$echo_array[2]."<>".$echo_array[3]."<br />\n" ); 202} 203 204 ?> 205 206 207</body> 208</html> 209 210コード
DrqYuto👍を押しています

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

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

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

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

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

m.ts10806

2020/01/07 00:59

この手のやり方で確認すべき仕様があります。 1234とあって4が削除された場合、次は4でいいのでしょうか。 ※それにPHPで掲示板関係の質問は非常に多く出ています。過去質問は全く参考になりませんか? 必ずあるはずです。
amura

2020/01/07 01:49 編集

for ($i=1; $i<count($files); $i++) ==> $i=0 にすると初回の1が読み込める さらに $count=$numpoint; $count=++$count;    ==>の行を $count=$numpoint+1; とするとMAXが取れるのでは
退会済みユーザー

退会済みユーザー

2020/01/07 11:09

↑3行登録して2行目削除したら次は?
huku

2020/01/07 14:19

asahina1979さん返信ありがとうございます。 どういう意味でしょうか?
amura

2020/01/07 22:32

最初のPHPのみです。2番目の時に1が再度振られる部分のみを修正してみました。 // 2ループ処理 for ($i=0; $i<count($files); $i++){ $numraw = explode("<>", trim($files[$i])); $numpoint = $numraw[0]; // 最大値より配列の値が大きければ上書きをする if($count <= $numpoint){ $count=$numpoint+1; } } 全体を見ていないのでご参考まで
huku

2020/01/08 03:05

試してみましたが駄目でした。 やはり1が二回出てきてしまいます。
FKM

2020/01/24 06:27 編集

一番最初の配列に対し、var_dump($numraw);として、その結果を出力してもらっていいですか?
guest

回答4

0

ここを下のようにしても変わりませんか?

php

1 2if (file_exists($file)) { 3 // 2ループ処理 4 $files = file('231536_receive.txt'); 5 for ($i=0; $i<count($files); $i++){ 6 $numraw = explode("<>", trim($files[$i])); 7 $numpoint = $numraw[0]; 8 // 最大値より配列の値が大きければ上書きをする 9 if($count < $numpoint){ 10 $count=$numpoint+1; 11 } 12 } 13} else { 14 $count = 1; 15} 16

投稿2020/01/15 02:46

TeamPassionall

総合スコア80

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

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

huku

2020/01/23 07:15

回答ありがとうございます。 試してみましたが変わらないようです。
TeamPassionall

2020/01/25 09:53

カウントの数字入れるのやめて、下から一行ずつ読み込んでってその時に番号振った方が簡単のような気がする。
guest

0

一応できている様です、確認頂けますでしょうか?ファイルは存在していないから始めています。

php

1 2<?php 3 4// $file="231536_receive.txt"; 5// if (file_exists($file)) { 6// $count = count(file($file))+1; 7// } else { 8// $count = 1; 9// } 10 11$file="231536_receive.txt"; 12$count=1; 13 14if (file_exists($file)) { 15 // 2ループ処理 16 $files = file('231536_receive.txt'); 17 for ($i=0; $i<count($files); $i++){ 18 $numraw = explode("<>", trim($files[$i])); 19 $numpoint = $numraw[0]; 20 // 最大値より配列の値が大きければ上書きをする 21 if($count <= $numpoint){ 22 $count=$numpoint+1; 23 } 24 } 25} else { 26 $count = 1; 27} 28 29 30$err_msg1 = ""; 31$err_msg2 = ""; 32$err_msg7= ""; 33$message =""; 34$passmessage=""; 35$edfile = file('231536_receive.txt'); 36$name=( isset( $_POST["name"] ) === true ) ?$_POST["name"]: ""; 37$text=( isset( $_POST["text"] ) === true ) ?$_POST["text"]: ""; 38$password=( isset( $_POST["password"] ) === true ) ?$_POST["password"]: ""; 39$data=($count."<>".$name."<>".$text."<>" .date('H:i:s')."<>".$password."\n"); 40 41if ( isset($_POST["posting"] ) === true ) { 42 if ( $name === "" ) $err_msg1 = "名前を入力してください"; 43 if ( $text === "" ) $err_msg2 = "コメントを入力してください"; 44 if ( $password === "" ) $err_msg7 = "パスワードを入力してください"; 45 if ( ($err_msg1 === "") && ($err_msg2 === "") && ($err_msg7 === "") ) { 46 $fp = fopen( "231536_receive.txt" ,"a" ); 47 fwrite($fp , $data); 48 $message = "投稿に成功しました。"; 49 fclose($fp); 50 } 51} 52 53// 編集フォーム 54$err_msg3 = ""; 55$err_msg4 = ""; 56$err_msg5 = ""; 57$err_msg9 = ""; 58$message2 =""; 59$edfile = file('231536_receive.txt'); 60$renum=( isset( $_POST["renum"] ) === true ) ?$_POST["renum"]: ""; 61$rename=( isset( $_POST["rename"] ) === true ) ?$_POST["rename"]: ""; 62$retext=( isset( $_POST["retext"] ) === true ) ?$_POST["retext"]: ""; 63$pass2ed=( isset( $_POST["pass2ed"] ) === true ) ?$_POST["pass2ed"]: ""; 64$redata=($renum."<>".$rename."<>".$retext."<>" .date('H:i:s')."<>".$pass2ed."\n"); 65 66if ( isset($_POST["edit"] ) === true ) { 67 68 if ( $renum === "" ) $err_msg3 = "番号を入力してください"; 69 if ( $rename === "" ) $err_msg4 = "名前を入力してください"; 70 if ( $retext === "" ) $err_msg5 = "コメントを入力してください"; 71 if ( $pass2ed === "" ) $err_msg9 = "パスワードを入力してください"; 72 73 if ( ($err_msg3 === "") && ($err_msg4 === "") && ($err_msg5 === "") && ($err_msg9 === "") ) { 74 $fp = fopen("231536_receive.txt", "w"); 75 for ($i = 0; $i < count($edfile); $i++) { 76 $editraw = explode("<>", trim($edfile[$i])); // <-- trim()をつけないとパスワードに改行コードがツイたまま。 77 78 if ($editraw[0] !== $renum) { 79 fwrite($fp, $edfile[$i]); 80 } 81 else { // <-- 投稿番号と編集番号が一致 82 if ($editraw[4] === $pass2ed){ 83 fwrite($fp, $redata); 84 $message2 = "編集に成功しました。"; 85 } 86 else { 87 fwrite($fp, $edfile[$i]); 88 $message2 = "編集に失敗しました。パスワードが間違っています。"; 89 } 90 } 91 } 92 if ($message2 === '') { 93 $message2 = "編集に失敗しました。編集番号が一致しませんでした。"; 94 } 95 fclose($fp); 96 } 97} 98 // 消去フォーム 99 $err_msg6 = ""; 100 $err_msg8 = ""; 101 $delfile = file('231536_receive.txt'); 102 $delete = ( isset( $_POST["delete"] ) === true ) ? $_POST["delete"] : ""; 103 $pass3del = ( isset( $_POST["pass3del"] ) === true ) ? $_POST["pass3del"] : ""; 104 105 106 107 if ( isset($_POST["delete"] ) === true ) { 108 if ( $delete === "" ) $err_msg6 = "番号を入力してください"; 109 if ( $pass3del === "" ) $err_msg8 = "パスワードを入力してください"; 110 111 if ( ($err_msg6 === "") && ($err_msg8 === "") ) { 112 $fp = fopen("231536_receive.txt", "w"); 113 for ($i = 0; $i < count($delfile); $i++) { 114 $deldata = explode( "<>", trim($delfile[$i]) ); 115 if ( $deldata[0] !== $delete ) { 116 fwrite($fp, $delfile[$i]); 117 } 118 else { 119 if ($deldata[4] === $pass3del) { 120 $err_msg6 = $delete . "番の消去に成功しました。"; 121 122 } 123 else { 124 $err_msg8 = $delete . "番の消去に失敗しました。パスワードが間違っています。"; 125 fwrite($fp, $delfile[$i]); 126 } 127 } 128 } 129 if ( ($err_msg6 === '') && ($err_msg8 === '') ) { 130 $err_msg6 = $delete . '番に一致するものを見つけられませんでした。'; 131 } 132 fclose($fp); 133 } 134 } 135 136?> 137 138<!DOCTYPE html> 139<html lang="ja"> 140<head> 141<meta charset="UTF-8"> 142<title>掲示板</title> 143 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 144 <link rel="stylesheet" href="./styles.css" type="text/css"> 145</head> 146<body> 147<h1>掲示板</h1> 148<section> 149 <h2>新規投稿</h2> 150 <form action="index.php" method="post"> 151  名前 : <input type="text" name="name" > <?php echo $err_msg1; ?><br> 152 コメント: <input type="text" name="text" > <?php echo $err_msg2; ?><br> 153 パスワードを設定 <input type="text" name="password" > <?php echo $err_msg7; ?> 154 <input type="submit" value="投稿" name="posting"><br> 155 <?php echo $message; ?> 156 </form> 157 158 159 <h2>投稿編集</h2> 160 <form action="index.php" method="post"> 161 編集番号 <input type="number" name="renum"> <?php echo $err_msg3; ?><br> 162 名前: <input type="text" name="rename" ><?php echo $err_msg4; ?><br> 163 コメント: <input type="text" name="retext" > <?php echo $err_msg5; ?><br> 164 パスワードを入力 <input type="text" name="pass2ed" ><?php echo $err_msg9; ?><br> 165 <input type="submit" value="編集" name="edit"><br> 166 <?php echo $message2; ?> 167 </form> 168 169 170 171 172 <h2>消去</h2> 173 <form action="index.php" method="post"> 174 消去番号 <input type="number" name="delete">     <?php echo $err_msg6; ?><br> 175 パスワードを入力 <input type="text" name="pass3del" > <?php echo $err_msg8; ?><br> 176 <input type="submit" value="消去">  <br> 177 </form> 178 179</section> 180<section> 181 <h2>投稿一覧</h2> 182</section> 183 184<?php 185// 読み込むファイル名の指定 186$file_name = "231536_receive.txt"; 187// ファイルを全て配列に入れる 188$ret_array = file( $file_name ); 189 190// 取得したファイルデータ(配列)を全て表示する 191for( $i = 0; $i < count($ret_array); ++$i ) { 192 $echo_array = explode("<>", $ret_array[$i]); 193 // 配列を順番に表示する 194 echo ( $echo_array[0]."<>".$echo_array[1]."<>".$echo_array[2]."<>".$echo_array[3]."<br />\n" ); 195} 196?> 197 198</body> 199</html> 200

投稿2020/01/08 04:36

編集2020/01/08 23:12
amura

総合スコア333

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

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

huku

2020/01/08 09:28

やはり1が二回でて来てしまいます。 仮想サーバーで動かしてみるとうまく動いたのですが、実際にサーバーにアップロードして動かしてみると1が二回出るバグが生じています。 何とかなりませんでしょうか?
amura

2020/01/08 09:47

多くの場合キャッシュされている事がありますので、できればhttpdをリブートして頂くか 別名index2.php変更(プログラム内も)して頂けないでしょうか?
huku

2020/01/08 10:04

index2.phpに変更して実行しましたがやはりうまくいきませんでした。 リブートというのは調べて再起動という意味は分かったのですが、何を再起動すればよいでしょうか?
amura

2020/01/08 10:13

確認ですがプログラム内部Callのindex.phpも2に修正して頂けましたでしょうか? サーバがLinuxかWindowsではリブートが異なります。またLinuxでも6と7は異なるのでこの辺が分かるとお教えできますが
amura

2020/01/08 10:15

またhttpでindex2.phpを直接指定して呼び出してください。くどくてすみません。
huku

2020/01/08 13:45

はい、すべてindex2.phpいたしました。 直接というのはhttp://〇〇〇〇/index2.phpindexという検索であっていますか? このやり方をしてもうまく動くませんでした。
amura

2020/01/08 13:54

http://〇〇〇〇/index2.php そうですが、サーバに違いでは発生しないと思います。時間が経てばリフレッシュしてされるので待つ手はありますね。そのサーバ夜間にリブートしないのでしょうか?
amura

2020/01/08 14:00

できれば、fopenしたらfcloseをされた方が良いのと(2箇所)、またfopenしたらflockされた方が良いかと思います。同時整合性を保つために
huku

2020/01/08 14:02

サーバーは借り物で、自分が直接借りたもの(Xサーバーなど)ではないので正直何とも言えないですが、とりあえず待ってみることにします。 もし何か解決策がありましたらまた教えていただきたいです。
huku

2020/01/08 14:03

ご指摘ありがとうございます。 手直ししておきます。
amura

2020/01/09 01:00

PHP入れ替えが行われているかを確かめるには画面下記にVersion番号(勝手な更新番号)を表示すれば確認できます。 本題とは関係ありませんが、画面入力文字列に<>が含まれることは避ける様にされた方がよろしいかと。
guest

0

自己解決

php

1 2 3 4$file="231536_receive.txt"; 5$files = file('231536_receive.txt'); 6$count=1; 7$fileinside = file_get_contents($file); 8if ($fileinside === "") { 9 $count=1; 10} else { 11 // 2ループ処理 12 for ($i=0; $i<count($files); $i++){ 13 $numraw = explode("<>", trim($files[$i])); 14 $numpoint = $numraw[0]; 15 // 最大値より配列の値が大きければ上書きをする 16 if($count <= $numpoint){ 17 $count= (int)$numpoint+1; 18 } 19 } 20 }

このように記述し、表示部分を

php

1 2$file="231536_receive.txt"; 3$files = file('231536_receive.txt'); 4$count=1; 5$fileinside = file_get_contents($file); 6if ($fileinside === "") { 7 $count=1; 8} else { 9 // 2ループ処理 10 for ($i=0; $i<count($files); $i++){ 11 $numraw = explode("<>", trim($files[$i])); 12 $numpoint = $numraw[0]; 13 // 最大値より配列の値が大きければ上書きをする 14 if($count <= $numpoint){ 15 $count= (int)$numpoint+1; 16 } 17 } 18 } 19 20このように記述し、表示部分を 21 22 23$file="231536_receive.txt"; 24 $file_name = "231536_receive.txt"; 25 // ファイルを読み込み変数に格納 26 $fileinside = file_get_contents($file); 27 if ($fileinside === "") { 28 echo "投稿がありません"; 29 } else { 30 // 読み込むファイル名の指定 31 $file_name = "231536_receive.txt"; 32 // ファイルを全て配列に入れる 33 $ret_array = file( $file_name ); 34 35 // 取得したファイルデータ(配列)を全て表示する 36 for( $i = 0; $i < count($ret_array); ++$i ) { 37 $echo_array = explode("<>", $ret_array[$i]); 38 39 // // 配列を順番に表示する 40 echo ( $echo_array[0]."<>".$echo_array[1]."<>".$echo_array[2]."<>".$echo_array[3]."<br />\n" ); 41 } 42 }

このように表示するとうまく表示することができました。
上のコードだけでなく下の部分にも問題があったのかもしれないです。
また、テキストファイルに文字はないですが何かしらのデータが祖jン材していたのが原因になったのかもしれません。
回答していただいた方々ありがとうございました。

投稿2020/01/25 02:57

huku

総合スコア18

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

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

0

同様の現象を経験しました。
コードは有っているはずなのに何故か二回1がカウントされたことがありました。
テキストファイルの内容を全部消したはずなのにFFFTPに表示されているサイズを見ると3になっていました。
そのせいで正しくカウント出来ていなかったようです。(原因は解明出来ませんでしたが)
その様な不具合はありませんか?

投稿2020/01/24 20:53

MakotoIshizawa

総合スコア32

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問