繁体   English   中英

替换php中的字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM