首页 > 解决方案 > preg_replace 如果结果替换或不替换。仅显示替换的文本,否则为空白

问题描述

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

<?php
 $text = "text4 text1 text2 text3";
 $replace = [
 '/\btext1\b/'         => 'replace1', //replace case sensitive
 '/\btext2\b/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 = [
 '/\btext1\b/'         => 'replace1', //replace case sensitive
 '/\btext2\b/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;

结果 = text4x text1x text2x text3x

如果不替换任何内容,则显示原始 $text ,如果任何单词不替换,我想显示空白结果

标签: php

解决方案


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

strcmp($文本,$结果); // 如果字符串相同,则返回 0

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

推荐阅读