关于php:如何检查字符串是否包含某个字符串


PHP - How to check if a string contain any text

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
6
<?php
$a = '';

if($a exist 'some text')
    echo 'text';
?>

假设我有上面的代码,如何编写语句"if($A exist‘some text’)"?


使用strpos函数:http://php.net/manual/en/function.strpos.php

1
2
3
4
5
6
$haystack ="foo bar baz";
$needle   ="bar";

if( strpos( $haystack, $needle ) !== false) {
    echo""bar" exists in the haystack variable";
}

在你的情况下:

1
if( strpos( $a, 'some text' ) !== false ) echo 'text';

注意,我使用!==操作符(而不是!= false== true,甚至只是if( strpos( ... ) ) {)是因为php处理strpos返回值的"真实性"/"虚假性"。


空字符串是错误的,因此您可以只写:

1
2
3
if ($a) {
    echo 'text';
}

尽管您在询问该字符串中是否存在特定的子字符串,但可以使用strpos()来执行此操作:

1
2
3
if (strpos($a, 'some text') !== false) {
    echo 'text';
}


http://php.net/manual/en/function.strpos.php如果字符串中存在"some text",我认为您是wondiner,对吗?

1
if(strpos( $a , 'some text' ) !== false)

您可以使用strpos()stripos()检查字符串是否包含给定的针。它将返回找到它的位置,否则将返回false。

使用操作符===或`!==与php中的0不同。


如果你需要知道一个词是否存在于一个字符串中,你可以使用这个。因为您的问题不清楚您是否只想知道变量是否是字符串。其中"word"是您在字符串中搜索的单词。

1
2
3
if (strpos($a,'word') !== false) {
echo 'true';
}

或者使用is-string方法。返回给定变量的真或假。

1
2
3
4
<?php
$a = '';
is_string($a);
?>

您可以使用此代码

1
2
3
4
$a = '';

if(!empty($a))
  echo 'text';


可以使用==比较运算符检查变量是否等于文本:

1
2
if( $a == 'some text') {
    ...

还可以使用strpos函数返回字符串的第一个匹配项:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$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";
}

参见文档


是否要检查$A是否为非空字符串?所以它只包含任何文本?那么下面的内容就可以了。

如果$A包含字符串,则可以使用以下内容:

1
2
3
if (!empty($a)) {      // Means: if not empty
    ...
}

如果您还需要确认$A实际上是一个字符串,请使用:

1
2
3
if (is_string($a) && !empty($a)) {      // Means: if $a is a string and not empty
    ...
}