如何在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
功能,但只是把东西粘在一起,我不知道它是否会削减不必要的空间。我该怎么用?
答案 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>';
?>
现在,没有更多的空间了:)