目前我有这个代码用<br />
替换任何双倍空格。
按预期工作:
<tr class="' . ($counter++ % 2 ? "odd" : "even") . '">
<td>Garments:</td>
<td>' . str_replace(' ', '<br /><br />', trim($result['garment_type'] ) ) . '</td>
</tr>
但是我想在同一行上再做一个str_replace()
,用管道符|
替换任何一个空格。
我尝试复制代码,但这只是为我创建了另一个TD
。
任何帮助都将不胜感激。
答案 0 :(得分:4)
您可以将数组传递给str_replace
$what[0] = ' ';
$what[1] = ' ';
$with[0] = '<br /><br />';
$with[1] = '|';
str_replace($what, $with, trim($result['garment_type'] ) )
答案 1 :(得分:1)
数组的顺序很重要,否则您将获得<br|/>
而不是<br />
,请尝试:
str_replace(array(' ','||'), array('|','<br /><br />'), trim($result['garment_type'] ));
这样的事情:
echo str_replace(array(' ','||'), array('|','<br /><br />'), 'crunchy bugs are so tasty man');
给你:
crunchy<br /><br />bugs|are|so<br /><br />|tasty|man
基本上,您要先将每个空格更改为|
,然后将两个彼此相邻的任何空格(||
)更改为<br /><br />
。
如果你走另一条路,你会将两个空格更改为<br /><br />
然后将单个空格更改为|
,并且在<br />
之间有一个空格,所以你结束<br|/>
。
使用您的代码进行编辑:
'<tr class="' . ($counter++ % 2 ? "odd" : "even") . '">
<td>Garments:</td>
<td>' . str_replace(array(' ','||'), array('|','<br /><br />'), trim($result['garment_type'] )) . '</td>
</tr>'
答案 2 :(得分:1)
要解决str_replace
的问题(<br />
中的空格被|
替换),请尝试strtr
:
echo strtr(trim($result['garment_type']), array(' '=>'|', ' '=>'<br /><br />'));