更新说明
我想检查用户提供的数据中是否包含字母和数字字符。因此,如果用户输入LP1 5NQ或LP15NQ并且我有一个数据数组并且包含在数组内部,则:
array(..., "LP1", ...)
然后脚本应该将数组与 LP1 5NQ或 LP1 5NQ
所以基本上我的问题是,当我尝试检查说LP1 5NQ的用户输入或类似的东西我想只检查他们的输入LP1的开始部分但是将LP1 5NQ存储在他们的会话中,以便它可以在以后访问。我已经可以存储他们的输入,我只是在检查用户输入的开始时遇到了麻烦。
PHP :
$op_postcodes = array("DG10","DG3", ......);
function like_in_array( $sNeedle, $aHaystack) {
foreach($aHaystack as $sKey) {
if(stripos(strtoupper($sKey), strtoupper($sNeedle)) !== false) {
return true;
}
}
return false;
}
if(isset($_POST["service_checker"]) && !empty($_POST["service_checker")) {
$postcode = htmlentities(trim(strtoupper($_POST['postcode'])));
if(empty($postcode)) {
$error = "<p class='err_msg'>Your postcode is required so that we can check if our services are available in your area.</p>";
} else if(like_in_array($postcode, $op_postcodes)) {
$error = "<p class='pop_up alert success'>Your in! We supply our services to $postcode.</p>";
$_SESSION['predx_cust_pc_order'] = $postcode;
} else {
$error = "<p class='err_msg'>Sorry, we aren't supplying your area just yet.</p>";
}
}
答案 0 :(得分:1)
我的其他解决方案的替代方案,考虑到忘记邮政编码空间的用户。
根据维基百科,邮政编码的第二部分总是三个字符长,所以你可以使用substr来切断最后三个字符,然后修剪以删除可能仍然存在的空格。像这样:
trim(substr("LP1 5NQ", 0, -3));
答案 1 :(得分:0)
我会使用&#39;爆炸&#39;像这样的功能
explode(" ", "LP1 5NQ");
这会将字符串拆分为包含邮政编码第一部分的数组,将第二部分拆分为两个不同的元素。然后,您可以轻松访问数组的第一个元素以进行检查。