【解決方法】CSV チェック false でコードが中断される

プログラミングQA


こんにちは。CSV に郵便番号が含まれていない場合に壊れる CSV チェックがあります。 私の csv ファイルは非常に大きい (約 12000 行) ため、これは非常に論理的です。 でも他に何をすればいいのか分かりません。
結果をJavaScriptテーブルに表示したいのでCookieを使用しています。
コードは次のように動作するはずです。
$zipcode = “5483 XK”;
$ハウス番号 = 46;

郵便番号 + 家番号の組み合わせがデータベースにある場合は、真の Cookie を送信します

存在しない場合は偽の Cookie を送信します

誰か私を助けてくれませんか

// csv code werkt wel tot ik de set cookie gebruik om
      $csv_file = "NewPostcodesCheckt.csv";

      // Open the file for reading
      $file_handle = fopen($csv_file, "r");

      // Read the contents of the file
      while (($row_data = fgetcsv($file_handle, 1000, ';')) !== FALSE) {
        if ($row_data[0] == $Zipcode && $row_data[1] == $Housenumber ) {
            // User input found in the CSV
            setcookie('cookie_test', 'true' , time() + 1000);
            break;
        }else{
          //user not found in csv
          //doordat de false geen break kan doen word de response headers to big
           setcookie('cookie_test', 'false', time() + 1000);


        }

      }
      // Close the file handle
      fclose($file_handle);

私が試したこと:

上の例は私が試したものです。 両方にブレークを与えてみましたが、最初の行のみがチェックされます

これはあなたが受け取るエラーです:

net::ERR_RESPONSE_HEADERS_TOO_BIG

解決策 1

えーっと…各行を見て、Cookie を設定して終了するか (この行でユーザーが見つかった場合)、見つからない場合は Cookie を設定してループの処理を続行します。

したがって、ユーザーが一意であり、CSV データが 1000 行あると仮定すると、1 ~ 1000 個の Cookie を設定します。 Cookie は応答ヘッダーの一部であるため、大量の Cookie がエラーの原因である可能性があります。

私はそれを疑うだろう else case はループ内に含めるべきではありませんが、ユーザーがデータ内に見つからない場合に 1 回だけ実行されます。

コメント

タイトルとURLをコピーしました