前提
phpでページの内容を更新する仕組みを作っています。
以下のようなテキストファイルをphpで読み込み、ページ上で編集した後、submitすることによってデータの更新をしようとしています。
data.txt
1abc<>abd<>def<>ghi 2abc<>abe<>def<>ghi 3abc<>abc<>def<>ghi<>aaa<>bbb 4abc<>abc<>def<>ghi<>aaa<>bbb 5abc<>abc<>def<>ghi<>aaa<>bbb 6abc<>abc<>def<>ghi<>aaa<>bbb 7abc<>abc<>def<>ghi<>aaa 8abc<>abc<>def<>ghi<>aaa 9abc<>abc<>def<>ghi<>aaa
発生している問題・エラーメッセージ
データを編集して送信しようとすると結構な時間がかかった後に
500 internal surver errorが出ます。
データの更新を完了させるためにどうすべきでしょうか?
該当のソースコード
form.php
1<?php 2$all_data = file(__DIR__ . '/data.txt', FILE_IGNORE_NEW_LINES); 3echo "<table>"; 4for($i=0;$i<36;$i++){ 5 if($i==0||$i==12||$i==24){ 6 echo "<tr><td colspan='4'><hr></td></tr>"; 7 } 8 $data[$i] = explode ("<>", $all_data[$i]); 9 echo "<tr><td><select name='m{$i}0'><option value='1'"; 10 if($data[$i][0]==1){echo "selected";} 11 echo ">表示</option><option value='0'"; 12 if($data[$i][0]==0){echo "selected";} 13 echo ">非表示</option></select></td>"; 14 echo "<td><input type='textarea' name='m{$i}1' value='{$data[$i][1]}'></td>"; 15 echo "<td><input type='textarea' name='m{$i}2' value='{$data[$i][2]}'></td>"; 16 echo "<td><input type='textarea' name='m{$i}3' value='{$data[$i][3]}'></td></tr>"; 17} 18echo "</table>"; 19?> 20<hr><b>**</b><br> 21<style>input.color{background-color:yellow;}</style> 22<? 23echo "<table>"; 24for($i=38;$i<48;$i++){ 25 $data[$i] = explode ("<>", $all_data[$i]); 26 echo "<tr><td><select name='m{$i}0'><option value='1'"; 27 if($data[$i][0]==1){echo "selected";} 28 echo ">表示</option><option value='0'"; 29 if($data[$i][0]==0){echo "selected";} 30 echo ">非表示</option></select></td><td>{$c}</td>"; 31 32 echo "<td><input type='textarea' name='m{$i}1' value='{$data[$i][1]}' placeholder=' '></td>"; 33 echo "<td><input size='5' type='textarea' name='m{$i}2' value='{$data[$i][2]}' placeholder=' '></td>"; 34 echo "<td><input size='5' type='textarea' name='m{$i}3' value='{$data[$i][3]}' placeholder=' '></td>"; 35 echo "<td><input size='8' class='color' type='textarea' name='m{$i}4' value='{$data[$i][4]}' placeholder=' '></td>"; 36 echo "<td><input size='8' class='color' type='textarea' name='m{$i}5' value='{$data[$i][5]}' placeholder=' '></td>"; 37 echo "<td><input size='8' class='color' type='textarea' name='m{$i}6' value='{$data[$i][6]}' placeholder=' '></td>"; 38 echo "<td><input size='8' class='color' type='textarea' name='m{$i}7' value='{$data[$i][7]}' placeholder=' '></td>"; 39 echo "<td><input size='8' type='textarea' name='m{$i}8' value='{$data[$i][8]}' placeholder=' '></td>"; 40 echo "<td><input class='color' type='textarea' name='m{$i}9' value='{$data[$i][9]}' placeholder=' '></td></tr>"; 41} 42?> 43</table><table style='border:1px solid black; border-collapse:collapse;'> 44<? 45echo "<tr><td></td><td>mon</td><td>tue</td><td>wed</td><td>tue</td><td>mon</td></tr>"; 46for($i=48,$time=1;$i<54;$i++,$time++){ 47 $data[$i] = explode ("<>", $all_data[$i]); 48 echo "<tr><td>*{$time}</td>"; 49 echo "<td><input size='1' type='textarea' name='m{$i}0' value='{$data[$i][0]}'></td>"; 50 echo "<td><input size='1' type='textarea' name='m{$i}1' value='{$data[$i][1]}'></td>"; 51 echo "<td><input size='1' type='textarea' name='m{$i}2' value='{$data[$i][2]}'></td>"; 52 echo "<td><input size='1' type='textarea' name='m{$i}3' value='{$data[$i][3]}'></td>"; 53 echo "<td><input size='1' type='textarea' name='m{$i}4' value='{$data[$i][4]}'></td>"; 54 echo "</tr>"; 55} 56echo "</table>"; 57?>
post.php
1<?php 2$filename = './data.txt'; 3$memory = ""; 4for($i=0;$i<54;$i++){ 5 $m[$i]=""; 6 if($i==0 ){$k=4 ;} 7 if($i==36){$k=0 ; $m[$i]="\n";} 8 if($i==37){$k=0 ; $m[$i]="\n";} 9 if($i==38){$k=10;} 10 if($i==48){$k=5 ;} 11 for($j=0;$j<$k;$j++){ 12 $m[$i]=$m[$i].$_POST["m{$i}{$j}"]."<>"; 13 } 14 $m[$i]=$m[$i]."\n"; 15} 16for($i=0;$i<54;$x++){ 17 $memory = $memory.$m[$i]; 18} 19file_put_contents($filename, $memory); 20echo "送信完了<br>正常に保存が完了しました"; 21?>