我怎么说“如果一个字符串在PHP中包含”x“?

时间:2011-06-28 07:45:06

标签: php string offset

我有一个变量:

$testingAllDay = $event->when[0]->startTime;

如果是“全天”,则此变量将为此格式:

2011-06-30

如果它不是“全天”,那将是这种格式:

2011-07-08T12:00:00.000-05:00

我想做类似的事情:

if ($testingAllDay does not contain "T"){
   $AllDay = 1;
   } else {
   $AllDay = 0;
}

我需要在这里使用strstr(),还是有其他功能可以做到这一点?谢谢!

7 个答案:

答案 0 :(得分:4)

一种选择是使用strpos来查看字符串中是否存在“T”字符,如下所示:

if (strpos($testingAllDay, 'T') !== false) {
    // 'T' was present in $testingAllDay
}

也就是说,在这种情况下使用strlen可能更快/更有效(尽管毫无疑问),因为根据你的例子,无时间字段总是10个字符长。

例如:

if(strlen($testingAllDay) > 10) {
    // 'T' was present in $testingAllDay
}

答案 1 :(得分:2)

使用strpos:

if (strpos($testingAllDay,"T")!==false){

或strstr

if (!strstr($testingAllDay,"T")){

答案 2 :(得分:2)

if (strpos($testingAllDay, 'T') !== FALSE){
   ...
}

答案 3 :(得分:2)

如果这些是唯一可能的情况,即使strlen()也会这样做。

答案 4 :(得分:1)

不完全回答问题,但您可以使用strlen()进行检查。 即“全天”长度为10,高于此值的任何东西都不是。

答案 5 :(得分:1)

您正在寻找的功能是strpos()。以下是获取变量名称的措辞的示例:

$testingAllDayTPosition = strpos($testingAllDay, 'T');

$testingAllDayDoesNotContainT = false === $testingAllDayTPosition;

if ($testingAllDayDoesNotContainT){
   $AllDay = 1;
   } else {
   $AllDay = 0;
}

答案 6 :(得分:0)

strstr和strpos是两个可以完成要求的功能。

strstr将查看字符串中是否存在子字符串,它将从第一次出现的字符串回显到休息。

虽然strpos会给你第一次出现字符串的位置。