美好的一天, 我已经阅读了大约25篇不同的文章,他们正在谈论添加“/”或“〜”等等,作为分隔符但是对这行代码没有用。我尝试过的所有东西仍然给我一个分隔符错误。任何帮助将不胜感激。感谢您的时间。以下是导致我所有研究的原始代码。
$allowedHosts = array();
// self
$host = $_SERVER['HTTP_HOST'];
if( preg_match('\d+\.\d+\.\d+\.\d+', $host) ) {
$allowedHosts[] = $host;
} else {
$allowedHosts[] = '*.' . $host;
$allowedHosts[] = $host;
}
答案 0 :(得分:4)
您需要围绕正则表达式分隔符:
if( preg_match('/\d+\.\d+\.\d+\.\d+/', $host) ) {
在这种情况下,我使用了/
这是非常标准的。但你可以使用其他符号:
if( preg_match('@\d+\.\d+\.\d+\.\d+@', $host) ) {
delimiter可以是任何非字母数字,非反斜杠,非空白字符。
我假设你正在尝试匹配一个IP地址你的正则表达式,你可以试试这个:
$IP = "198.168.1.78";
if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/',$IP)) {
echo "Your IP address is ok.";
} else {
echo "Wrong IP address.";
}
答案 1 :(得分:3)
看起来您正在尝试验证IP地址。
PHP内置了...
$validIp = filter_var($host, FILTER_VALIDATE_IP);