前提・実現したいこと
PHPで数列を入力し半角スペースで分割し、そののちに昇順、降順にソートする、最大、最小を抜き出すというシステムを作っています。
以下はそのinput画面なのですが、エラーが起きてしまいました。
括弧の閉じ忘れでしょうか?
また、end of fileのエラーの探し方がわかりません。
効率のいい探し方があれば教えてください。
発生している問題・エラーメッセージ
Parse error: syntax error, unexpected end of file in C:\ファイル名(伏せさせていただきます) on line 129
該当のソースコード
PHP
1<?php 2//変数宣言 3$input = ""; 4//エラー処理① 5if(isset($_GET['state']) && $_GET['state'] == 'input'){ 6 //配列の作成 7 $Data = []; 8 $Oganized_Data = []; 9 $index_number = []; 10 //エラースイッチ、メッセージの初期化 11 $switch = 1; 12 $msg = ""; 13 $msg2 = ""; 14 //入力情報の保存 15 $input = $_GET['sequence']; 16 17 //全体精査:入力の有無 18 if($_GET['sequence'] == ""){ 19 $msg = "半角数字で数列を入力してください"; 20 $switch = 2; 21 } 22 else{ 23 //単体精査:入力が数値かどうかの判定 24 //「' '」で分割し、一度配列に格納してゆきます 25 $Data = explode(" ",$_GET['sequence']); 26 //配列を再び別の配列へと移してゆきます 27 //この時、何も入力値がない配列は要素を移しません 28 foreach($Data as $num){ 29 if(!($num == "") && !($num == " ")){ 30 $Oganized_Data[] = $num; 31 } 32 else{ 33 $msg2 = "空白の入れ方に誤りがあります。"; 34 $switch = 2; 35 } 36 //整理された配列に対して正しく数値が入力されているかの確認を行います 37 foreach($Oganized_Data as $index => $num){ 38 if(!is_numeric($num)){ 39 $msg = "入力できるのは半角数字のみです"; 40 $switch = 3; 41 //エラーの出た数列の番号を保存します 42 $index_number[] = ($index + 1); 43 } 44 } 45 } 46 47 if($switch == 1){ 48 //エラースイッチが「1」である時の処理 49 $error = ""; 50 header('Location:ep17-task_output_improvement-2.php?num1='.$_GET['sequence']); 51 exit(); 52 } 53 else{ 54 //エラースイッチが「1」以外の時の共通処理 55 $error = "※入力に誤りがあります"; 56 } 57} 58?> 59 60<!DOCTYPE html> 61<html lang = "ja"> 62 63<head> 64 <meta charset="UTF-8"> 65 <title>バブルソート</title> 66 <style> 67 .error_message{ 68 color:red; 69 } 70 </style> 71</head> 72 73<body> 74 75<h1>数列を並べ替えてくれるシステムです</h1> 76<p>数字を半角で入力してください</p> 77 78<form method="get" action="index.php"> <!-- この書き方をすると同じファイルのphpに移ることが出来る--> 79 <table border="1"> 80 <tr> 81 <td> 82 数列 83 <?php 84 if(isset($_GET['state']) && $_GET['state'] == 'input'){ 85 if(!($switch == 1)){?> 86 <div class="error_message">※</div> 87 <?php 88 } 89 } 90 ?> 91 </td> 92 <td colspan="2"><input type="text" name="sequence" value="<?php echo $input ?>"></td> 93 </tr> 94 <tr> 95 <td>並べ替え</td><td><input type="radio" name="mode1" value="descending_order" checked>降順</td><td><input type="radio" name="mode1" value="ascending_order">昇順</td> 96 </tr> 97 <tr> 98 <td>抜き出し</td><td><input type="radio" name="mode2" value="max" checked>最大値</td><td><input type="radio" name="mode2" value="min">最小値</td> 99 </tr> 100 <tr> 101 <th colspan="3"> <button type="submit" name="state" value="input">表示</button></th> 102 </tr> 103 </table> 104</form> 105 106<?php if(isset($_GET['state']) && $_GET['state'] == 'input'){?> 107<div class="error_message"> 108 <p><?php echo $error; ?></p> 109 <p><?php echo $msg; ?></p> 110 <?php if($switch == 3){ ?> 111 <p> 112 数列の 113 <?php 114 foreach($index_number as $num1){ 115 echo $num1."番目、"; 116 } 117 ?> 118 の入力に誤りがあります 119 </p> 120 <?php 121 } ?> 122 <p><?php echo $msg2; ?></p> 123</div> 124<?php 125}?> 126 127</body> 128 129</html>
試したこと
括弧の抜け忘れを一通り見ました
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/23 13:35