Php 如何使用字符串检查子域是";美国";

Php 如何使用字符串检查子域是";美国";,php,Php,我有一个示例代码来检查字符串子域是否为“us” 但是结果错误,如何修复它如果“子域”表示tld和主域被排除,这意味着我们必须检查文本“us”和文本中的两个点 它还将与子域(如us.subdomain.domain.us)匹配 在这种特殊情况下,我认为没有必要使用正则表达式。 我想一个简单的strpo就可以了。 请尝试以下代码: $string = "www.domain.com"; // 1 $string = "domain.com"; // 2 $string = "us.domain.co

我有一个示例代码来检查字符串子域是否为“us”

但是结果错误,如何修复它

如果“子域”表示tld和主域被排除,这意味着我们必须检查文本“us”和文本中的两个点

它还将与子域(如us.subdomain.domain.us)匹配


在这种特殊情况下,我认为没有必要使用正则表达式。
我想一个简单的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";
}