PHP在课堂上修剪不必要的空间

时间:2014-10-21 10:53:03

标签: php trim

如何在PHP *中修剪不必要的空格

问题是这个。你有2个if子句输出字符串或空字符串,我需要稍后将它们放在一个类中:

<?php
$result1 = ($result_1) ? 'first' : '';
$result2 = ($result_2) ? 'second' : '';

$class_out = trim('clear' . ' ' .$result1. ' ' .$result2);

return '<span class="'.$class_out.'"></span>';
?>

现在,$result_1$result_2可以设置或不设置,因此输出的可能性应该是

<span class="clear first second"></span>
<span class="clear first"></span>
<span class="clear second"></span>
<span class="clear"></span>

但相反,他们是

<span class="clear first second"></span>
<span class="clear first"></span>
<span class="clear  second"></span><!-- EXTRA SPACE-->
<span class="clear"></span>

现在,这不是一个错误,但它看起来有点难看。如果可以避免,为什么要有额外的空间?问题是,怎么样?我发现了implode功能,但只是把东西粘在一起,我不知道它是否会削减不必要的空间。我该怎么用?

3 个答案:

答案 0 :(得分:3)

您可以使用数组(在我看来产生更易读的代码):

$classes = array('clear');
if ($result_1) {
    $classes[] = 'first';
}
if ($result_2) {
    $classes[] = 'second';
}

$class_out = implode(' ', $classes);

答案 1 :(得分:2)

trim()从您想要replace all multiple spaces with just one的字符串的开头和结尾删除空格。

$class_out = trim('clear' . ' ' .$result1. ' ' .$result2);
$class = preg_replace('!\s+!', ' ', $class_out);

答案 2 :(得分:1)

在您的PHP代码中,设置$ result1和$ result2 var

中的空格
<?php
    $result1 = ($result_1) ? ' first' : '';
    $result2 = ($result_2) ? ' second' : '';

    $class_out = trim('clear' . $result1 . $result2);

    return '<span class="'.$class_out.'"></span>';
?>

现在,没有更多的空间了:)