字符串上的多个字符串函数

时间:2017-01-02 10:49:40

标签: php

如果你在一个字符串上有很多字符串函数,那么最好的做法是什么?

$string = strip_tags(utf8_decode(html_entity_decode(str_replace(["\r\n\r\n", "<br />", "<br>", "</p>"], "\r\n", $string), ENT_QUOTES)));

这是我的脚本中的代码snippit,我认为它看起来很糟糕,但我需要这个字符串上的所有这些函数... 我只用了一次,所以把它放在一个函数中就太过分了。

如果您有任何建议,请告诉我们:)

P.S。仍然是PHP的初学者...

2 个答案:

答案 0 :(得分:1)

您可以使用适当的缩进来增强代码的可读性:

$string = strip_tags(
    utf8_decode(
        html_entity_decode(
            str_replace(
                [
                    "\r\n\r\n", 
                    '<br />', 
                    '<br>', 
                    '</p>'
                ], 
                "\r\n", 
                $string
            ), 
            ENT_QUOTES
        )
    )
);

但不管怎样,我绝对会建议将这些代码移到单独的函数中!这允许您选择一个描述其实际功能的名称,以便您可以将该逻辑的内部详细信息保留在应用它的代码之外。

答案 1 :(得分:1)

  

我只使用一次,所以把它放在一个函数中就太过分了。

我完全不赞同。您的代码的意图是显而易见的,如果您将行放在方法中,您将使代码更具可读性 - 因而也是可维护的

function remove_all_tags($string)
{
    return strip_tags(utf8_decode(html_entity_decode(str_replace(["\r\n\r\n", "<br />", "<br>", "</p>"], "\r\n", $string), ENT_QUOTES)));
}

我还建议将调用分开以使意图更清晰

function remove_all_tags($string)
{
    $stringWithUnifiedNewline = str_replace(["\r\n\r\n", "<br />", "<br>", "</p>"], "\r\n", $string);
    $htmlDecodedString = html_entity_decode($stringWithUnifiedNewline, ENT_QUOTES)
    $utf8DecodedString = utf8_decode($htmlDecodedString);
    return strip_tags($utf8DecodedString);
}

现在比较原始代码

$string = strip_tags(utf8_decode(html_entity_decode(str_replace(["\r\n\r\n", "<br />", "<br>", "</p>"], "\r\n", $string), ENT_QUOTES)));

$string = remove_all_tags($string);

你的意图更清晰,代码更清晰,每个人都很开心。