[英]Replace strings in php
我有一个包含标签<p> </p>
的字符串,我想用<br />
替换它们,但是每当尝试使用str_replace()
它都不会这样做。
有什么解决办法吗? 还有其他可能的方法吗?
$string="<p> This is one para </p> <p> This is second </p>";
使用方法:
str_replace("</p> <p>","<br />",$string> nothing gets replaced.
您是否正在寻找这样的东西?
<?php
$string = "<p> This is one para </p> <p> This is second </p>";
$searchArray = array(
'<p>'
, '</p>'
);
$replaceArray = array(
''
, '<br />'
);
var_dump( str_replace($searchArray, $replaceArray, $string) );
?>
输出量
string(47) " This is one para <br /> This is second <br />"
str_replace
寻找一个完全匹配,然后替换它。 您的字符串中没有"<p> </p>"
,因此它将永远不会匹配。 您似乎期望的行为是这样的:
如果字符串包含这些子字符串,请用this替换它们。 即使str_replace
行为确实如此,它如何知道将替换放置在何处?
我相信这是您的意图;
$needles = array("<p>" => "",
"</p>" => "</br>");
$string = "<p> This is one para </p> <p> This is second </p>";
$match = true;
foreach($needles as $find => $replace)
{
if(strpos($string, $find) === false)
{
$match = false;
}
}
if($match)
{
foreach($needles as $find => $replace)
{
$string = str_replace($find, $replace, $string);
}
}
echo $string;
如果字符串与$needles
中的所有键匹配,它将用$needles
的相应值替换它们。 但是,如果要进行更多的HTML操作,那么使用preg_replace
正则表达式将是更好的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.