字符串结尾可以包含随机数时的PHP字符串比较

标签 php

我需要让下面的 PHP 正常工作。我基本上需要获取存储在 $sshCommandResponseString 中的字符串,并检查它是否包含 4 个可能字符串中的 1 个。

start: Job is already running: mysql
mysql start/running, process 8019
mysql stop/waiting mysql start/running, process 8348
stop: Unknown instance: mysql start/running, process 8693

最后 3 个字符串以 4 位数字结尾,该数字始终是不同的值。所以我不能像下面的函数那样做一个简单的 if/else 检查,因为字符串有时会以 4 位数字结尾!

那么检查我的字符串是否与这 4 个字符串中的 1 个匹配的最佳方法是什么?

function didMySqlDbRestart($sshCommandResponseString){

    if( $sshCommandResponseString == 'start: Job is already running: mysql' ){
        return true;
    }else if( $sshCommandResponseString == 'mysql start/running, process 8019' ){
        return true;
    }else if( $sshCommandResponseString == 'mysql stop/waiting mysql start/running, process 8348' ){
        return true;
    }else if( $sshCommandResponseString == 'stop: Unknown instance: mysql start/running, process 8693' ){
        return true;
    }else{
        return false;
    }
}

if(didMySqlDbRestart($sshCommandResponseString)){
    echo 'SUCCESS: MySQL Database Rebooted';
}else{
    echo 'ERROR: MySQL Database Did Not Reboot';
}

更新

添加到用户 Laser 的回答中也许这样就可以了......

  function didMySqlDbRestart($sshCommandResponseString){
    if(preg_match('/^.*\d{4}$/', trim($sshCommandResponseString)) > 0){
        return true;
    }else if($sshCommandResponseString == 'start: Job is already running: mysql'){
        return true;
    }else{
        return false;
    }
  }

最佳答案

使用strpos检查字符串的常量部分或使用preg_match用正则表达式测试它

关于字符串结尾可以包含随机数时的PHP字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38115160/

相关文章:

php - Openbay Pro 模块类别同步不起作用

javascript - 我如何在 Codeigniter 中处理 pdf 格式的文件下载?

php - SQLSTATE[HY000] [1698] 拒绝用户访问 'root' @'localhost'

php - 如何在symfony中将json请求转换为数组?

php - 应用 css 背景色后图像不可见

php - Laravel 所有 session ID 与 Redis 驱动程序

php - MySQL 连接数组

php - oneup flysystem和liip想象一下本地缓存设置

php - 登录时不同的导航显示

php - Laravel 中的通配符 URL 路由