我需要让下面的 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/