检查字符串是否包含PHP中的字符串

时间:2012-06-21 13:08:34

标签: php mysql string

我想知道如果该IP地址的字符串为x

,我该如何检查字符串(特别是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.

那么如果它的字符串是$ x,我怎么能检查$ ip?

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

谢谢。

4 个答案:

答案 0 :(得分:3)

使用strstr()

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

另见:

  • stristr()表示此函数的不区分大小写的版本。
  • strpos()查找第一个字符串
  • stripos()在字符串中查找第一次出现不区分大小写的子字符串的位置

答案 1 :(得分:3)

使用strstr()

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

基于$ domain,我们可以确定是否找到字符串(如果domain为null,找不到字符串)

此功能区分大小写。对于不区分大小写的搜索,请使用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";
}

同时阅读早期帖子 How can I check if a word is contained in another string using PHP?

答案 2 :(得分:2)

你也可以使用strpos(),如果你专门寻找字符串的开头(如你的例子):

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

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

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

或者,如果您想比较起始的n个字符,请使用strncmp()

if( strncmp( $ip, $x, strlen( $x)) === 0) {
    // $ip's beginning characters match $x
}

答案 3 :(得分:1)

使用strpos()

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

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