Php 如何使用字符串检查子域是";美国";
我有一个示例代码来检查字符串子域是否为“us” 但是结果错误,如何修复它如果“子域”表示tld和主域被排除,这意味着我们必须检查文本“us”和文本中的两个点 它还将与子域(如us.subdomain.domain.us)匹配Php 如何使用字符串检查子域是";美国";,php,Php,我有一个示例代码来检查字符串子域是否为“us” 但是结果错误,如何修复它如果“子域”表示tld和主域被排除,这意味着我们必须检查文本“us”和文本中的两个点 它还将与子域(如us.subdomain.domain.us)匹配 在这种特殊情况下,我认为没有必要使用正则表达式。 我想一个简单的strpo就可以了。 请尝试以下代码: $string = "www.domain.com"; // 1 $string = "domain.com"; // 2 $string = "us.domain.co
在这种特殊情况下,我认为没有必要使用正则表达式。
我想一个简单的strpo就可以了。
请尝试以下代码:
$string = "www.domain.com"; // 1
$string = "domain.com"; // 2
$string = "us.domain.com"; // 3
$string = "www.us.domain.com"; // 4
if (strpos($string,'us.')) {
echo "$string include us";
} else {
echo "$string not include us";
}
您不需要regexp在较大的字符串中查找子字符串。无论如何,请求不清楚。您确定只想检查字符串中是否有us
?它会在诸如asus.com
之类的域上崩溃。。。?为什么不使用@samiles?为什么不为一个可以用3行代码轻松编写的功能提供一个三十多个文件包?为什么不将您的正则表达式更改为(\.us.)|(us.)@axiac?如果您有大量类似http://us.x.com,us.com
,asus.com
,x.us
等,如果您试图检查它是否是子域,那么只检查它us
是否在字符串中的某个位置是没有用的。。。
<?php
$domains = [
'www.domain.us',
'domain.us',
'domainuscomputers.com',
'us.domain.us',
'www.asuscomputers.usdomain.us',
'us.subdomain.domain.us',
];
$reg = '/us.*\..*\./';
foreach ($domains as $domain) {
$match = preg_match($reg, $domain) ? 'subdomain containing "us" found' : 'No match';
printf('domain %s : %s<br>', $domain, $match);
}
$string = "www.domain.com"; // 1
$string = "domain.com"; // 2
$string = "us.domain.com"; // 3
$string = "www.us.domain.com"; // 4
if (strpos($string,'us.')) {
echo "$string include us";
} else {
echo "$string not include us";
}