我有这段代码:
<?php
$string = "<br>
<br>
Hello
";
$string = str_replace('<br><br>','text',$string);
echo $string;
?>
这不起作用..
但这很有效。
<?php
$string = "<br><br>
Hello
";
$string = str_replace('<br><br>','text',$string);
echo $string;
?>
这不是我的真实代码,但我可以使用此代码复制我的问题。我需要一个解决方案,即使没有换行也能正常工作。请帮帮我。
答案 0 :(得分:3)
您可以在正则表达式模式后使用preg_replace()
和多行操作符m
执行此操作。
$string = preg_replace('/(<br><br>){,2}/m', 'text', $string);
答案 1 :(得分:1)
在您的第一个代码中,您的两个标记<br>
由不可见的字符(\n
)分隔,这就是为什么您的正则表达式(由str_replace
生成)无法正常工作
这不起作用
<?php
$string = "<br>
<br>
Hello
";
$string = str_replace('<br><br>','text',$string);
echo $string;
?>
但是这段代码会:
<?php
$string = "<br>".
"<br>
Hello
";
$string = str_replace('<br><br>','text',$string);
echo $string;
?>
答案 2 :(得分:0)
这是因为&#34;空间&#34;字符,使用rtrim删除它们:
$string = str_replace('<br><br>','text',rtrim($string));
请注意,它会删除 ALL 空格和换行符,因此它也会删除Hello之前的换行符。看看你需要做什么。
答案 3 :(得分:0)
因为没有&#39;
&#39;在第一个代码中。有
。它将查看确切的单词以进行更改。这意味着如果您的str_replace('<br><br>'
代码中有空白,则可以使用。
<?php
$string = "<br>
<br>
Hello
";
$string = str_replace('<br><br>','text',$string);
echo $string;
?>
答案 4 :(得分:0)
为中断创建一个数组并使用字符串进行检查。
$breaks = array("\r\n", "\n", "\r");
$newtext = str_replace($breaks, "", $string);`