如果你在一个字符串上有很多字符串函数,那么最好的做法是什么?
$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的初学者...
答案 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);
你的意图更清晰,代码更清晰,每个人都很开心。