preg_replace 如果结果替换或不替换.仅显示替换的文本,否则为空



我想得到preg_replace如果替换,则显示结果,否则为空

<?php
 $text = "text4 text1 text2 text3";
 $replace = [
 '/btext1b/'         => 'replace1', //replace case sensitive
 '/btext2b/i'         => 'replace2', //non-sensitive
 '/b(text3|text4)b/i' => 'replace3', //replace both text3 and text4
 ];
$result = preg_replace(array_keys($replace), $replace, $text);
echo $result;
结果 = 替换3 替换

1 替换2 替换3

<?php
 $text = "text4x text1x text2x text3x";
 $replace = [
 '/btext1b/'         => 'replace1', //replace case sensitive
 '/btext2b/i'         => 'replace2', //non-sensitive
 '/b(text3|text4)b/i' => 'replace3', //replace both text3 and text4
 ];
$result = preg_replace(array_keys($replace), $replace, $text);
echo $result;

结果 = 文本 4x 文本 1x 文本 2x 文本 3x

如果不替换任何东西,那么它显示原始$text,如果任何单词不替换,我想在那里显示空白结果

您可以使用 strcmp 来比较字符串。

strcmp($text,$result);//如果字符串相同,则返回 0

$compare = strcmp($text,$result);
if($compare == 0){ echo $text;  }
else { echo 'Result not found'; }

最新更新