【问题标题】:how do I say "If a string contains "x" in PHP?我怎么说“如果一个字符串在 PHP 中包含“x”?
【发布时间】:2011-06-28 07:45:06
【问题描述】:

我有一个变量:

$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(),还是有其他功能可以做到这一点?谢谢!

【问题讨论】:

    标签: php string offset


    【解决方案1】:

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

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

    也就是说,在这种情况下使用 strlen 可能会更快/更有效(尽管毫无意义),根据您的示例,无时间字段将始终为 10 个字符长。

    例如:

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

    【讨论】:

    • 谢谢大家!学了一个新的!
    • 是的,我想我更喜欢 strpos,因为它似乎不太依赖特定的字符串长度等。
    • @Joel True - 就解决方案而言,这是正确的做法,并且在六个月的时间内(就易读性而言)将比 strlen 更加明显。打得好,那个人。 :-)
    【解决方案2】:

    使用 strpos:

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

    或strstr

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

    【讨论】:

    • 如果T是第一个字符呢?
    【解决方案3】:
    if (strpos($testingAllDay, 'T') !== FALSE){
       ...
    }
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        不完全回答这个问题,但你可以用 strlen() 检查。 即“全天”长度为 10,任何超过该长度的都不是。

        【讨论】:

          【解决方案6】:

          您要查找的函数是strpos()。以下是一个示例,甚至可以使用变量名称的措辞:

          $testingAllDayTPosition = strpos($testingAllDay, 'T');
          
          $testingAllDayDoesNotContainT = false === $testingAllDayTPosition;
          
          if ($testingAllDayDoesNotContainT){
             $AllDay = 1;
             } else {
             $AllDay = 0;
          }
          

          【讨论】:

            【解决方案7】:

            strstr 和 strpos 是您可以完成需求的两个函数。

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

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

            【讨论】:

              猜你喜欢
              • 2011-11-23
              • 2023-03-20
              • 1970-01-01
              • 2021-12-08
              • 1970-01-01
              • 2012-08-05
              • 1970-01-01
              • 2014-07-16
              • 1970-01-01
              相关资源
              最近更新 更多