前提・実現したいこと
CSVに格納されているテキストが、ホームページ上で入力された文字と部分一致するかを検索したい。
当方最近PHPを始めたものです。
お手数をかけして申し訳ありませんが、よろしくお願い申し上げます。
発生している問題・エラーメッセージ
CSVに格納されているテキストと同じ文字を入力して、preg_matchで検索をかけても部分一致になりません。
該当のソースコード
PHP
1define( 'ANANSWER', './An_answer.csv'); 2 3// 変数の初期化 4$text = false; 5 6if( !empty($_POST['btn_submit']) ) { 7 8 // 読み込み用にtest.csvを開きます。 9 if($f = fopen(ANANSWER, "r")) { 10 11 // test.csvの行を1行ずつ読み込みます。 12 while($line = fgetcsv($f)){ 13 // 該当と部分一致するものがないかを探します。 14 if(preg_match('/'.$line[0].'/', $_POST['view_name'])){ 15 16 echo "成功"; 17 $text = true; 18 break; 19 } 20 } 21 22 23 // test.csvを閉じます。 24 fclose($f); 25 if($text == false){ 26 27 echo "失敗"; 28 29 } 30 31 } 32} 33
html
1</div> 2 <form method="post"> 3 <div class="texstbox"> 4 <input id="view_name" type="text" name="view_name" value=""> 5 </div> 6 <div class="texst_inpt"> 7 <input type="submit" name="btn_submit" value="書き込む"> 8 </div> 9 </form> 10</div>
試したこと
preg_match('/'.$line[0].'/', $_POST['view_name'])
を
preg_match('/'.$_POST['view_name'].'/', $line[0])
にすると成功致しました。
base64_encode
で試すと、以下の通りに出力されました。
「$line[0]」・・・string(24) "77u/44GT44KT44Gr44Gh44Gv"
「$_POST['view_name']」・・・string(20) "44GT44KT44Gr44Gh44Gv"
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/15 02:24
2020/11/15 02:27