我想創建一個簡單的郵政編碼表單,其中用戶輸入郵政編碼,如果郵政編碼存在,用戶將重定向到鏈接。PHP部分郵編匹配
所以,我有這樣的HTML表單:
<form method="get" action="index.php">
<input type="text" class="form-control input-lg" name="postcode" id="postcode" placeholder="Postcode">
<span class="input-group-btn">
<input class="btn btn-default btn-lg find" name="did_submit" id="submithome" type="submit" value="Find My Matchmaker" class="searchbutton">
</span>
</form>
而且PHP腳本:
<?php
if(isset($_GET['postcode'])){
$valid_prefixes = array(
2 => array('NH', 'AQ'),
3 => array('NZ2', 'GT5'),
4 => array('NG89', 'NG76')
);
foreach($valid_prefixes as $length => $prefixes) {
if (in_array(substr($_GET['postcode'], 0, $length), $prefixes)) {
header("Location: http://www.google.com/");
} else {
echo "<script> $('#myModal').modal('show') </script>";
}
exit;
}}
?>
因此,如果輸入的郵政編碼爲CV或NG,該腳本將用戶重定向到谷歌如果不是,將會啓動一個模式。
現在的問題。顯然,用戶會輸入CV12DB(完整的郵編),他們會得到模態,就好像郵編不存在一樣。 我正在嘗試使用PHP腳本來搜索用戶輸入的內容,如果他的郵編包含簡歷或NG或SH,則將其重定向到Google。
我已經嘗試使用「preg_match」或使用鍵而不是陣列,但沒有運氣.. 我似乎無法弄清楚如何使其工作。
UPDATE 替換代碼後,出於某種原因,它只識別雙字母數組。 例如,如果輸入NG76PL,它不會識別它,因此它會轉到「其他」
您的更正的代碼(實際上是基於Peter van der Wal的答案,而不是您原來的問題)有一個錯誤放置的'退出;',這意味着它將在第一次循環後退出PHP。 – IMSoP
非常感謝,現在有效。我非常感謝 –