2

我想知道如果该 IP 地址具有 x 字符串,我如何检查 I 字符串(特别是 IP 地址)

例如

$ip = "66.124.61.23" // ip of the current user
$x = "66.124" // this is the string what I want to check in my $ip.

那么如何检查 $ip 是否有 $x 字符串?

如果您很难理解这种情况,请发表评论。

谢谢你。

4

4 回答 4

6

利用strstr()

if (strstr($ip, $x))
{
    //found it
}

也可以看看:

  • stristr()对于此功能的不区分大小写的版本。
  • strpos()查找第一次出现的字符串
  • stripos()查找字符串中第一次出现不区分大小写的子字符串的位置
于 2012-06-21T13:10:21.697 回答
4

您也可以使用strpos(), 如果您专门寻找字符串的开头(如您的示例中所示):

if (strpos($ip, $x) === 0)

或者,如果您只想查看它是否在字符串中(并且不关心在字符串中的位置:

if (strpos($ip, $x) !== false)

或者,如果要比较开头的 n 个字符,请使用strncmp()

if (strncmp($ip, $x, strlen($x)) === 0) {
    // $ip's beginning characters match $x
}
于 2012-06-21T13:13:49.577 回答
3

使用strstr()

$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // prints @example.com

根据 $domain 判断是否找到字符串(如果 domain 为空,则找不到字符串)

此函数区分大小写。对于不区分大小写的搜索,请使用stristr()

您也可以使用strpos()

$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
    echo "The string '$findme' was not found in the string '$mystring'";
} else {
    echo "The string '$findme' was found in the string '$mystring'";
    echo " and exists at position $pos";
}

另请阅读之前的帖子,如何使用 PHP 检查一个单词是否包含在另一个字符串中?

于 2012-06-21T13:12:32.063 回答
2

使用strpos()

if(strpos($ip, $x) !== false){
    //dostuff
}

注意使用双等号来避免类型转换。 strpos可以返回0(并且将在您的示例中),这将使用单个等号计算为 false。

于 2012-06-21T13:13:40.673 回答