如何用 str_replace() 替换所有出现的两个子字符串?
How to replace all occurrences of two substrings with str_replace()?
目前我有这段代码可以用 <br />
替换任何双 space。
它按预期工作:
<tr class="' . ($counter++ % 2 ? "odd" : "even") . '">
<td>Garments:</td>
<td>' . str_replace(' ', '<br /><br />', trim($result['garment_type'] ) ) . '</td>
</tr>
但是我想在同一行上再做一个 str_replace()
来用竖线字符 |
.
替换任何单个 space
我尝试复制代码,但这只会为我创建另一个 TD
。
如有任何帮助,我们将不胜感激。
您可以将数组传递给 str_replace
$what[0] = ' ';
$what[1] = ' ';
$with[0] = '<br /><br />';
$with[1] = '|';
str_replace($what, $with, trim($result['garment_type'] ) )
数组的顺序很重要,否则你会得到 <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
基本上,您首先将每个 space 更改为 |
,然后将任何两个相邻的 (||
) 更改为 <br /><br />
。
如果你走另一条路,你会将两个 space 更改为 <br /><br />
然后你将单个 space 更改为 |
并且在 <br />
有一个 space,所以你最终得到 <br|/>
。
使用您的代码进行编辑:
'<tr class="' . ($counter++ % 2 ? "odd" : "even") . '">
<td>Garments:</td>
<td>' . str_replace(array(' ','||'), array('|','<br /><br />'), trim($result['garment_type'] )) . '</td>
</tr>'
要解决 str_replace
的问题(<br />
中的 space 被替换为 |
)尝试 strtr
:
echo strtr(trim($result['garment_type']), array(' '=>'|', ' '=>'<br /><br />'));
目前我有这段代码可以用 <br />
替换任何双 space。
它按预期工作:
<tr class="' . ($counter++ % 2 ? "odd" : "even") . '">
<td>Garments:</td>
<td>' . str_replace(' ', '<br /><br />', trim($result['garment_type'] ) ) . '</td>
</tr>
但是我想在同一行上再做一个 str_replace()
来用竖线字符 |
.
我尝试复制代码,但这只会为我创建另一个 TD
。
如有任何帮助,我们将不胜感激。
您可以将数组传递给 str_replace
$what[0] = ' ';
$what[1] = ' ';
$with[0] = '<br /><br />';
$with[1] = '|';
str_replace($what, $with, trim($result['garment_type'] ) )
数组的顺序很重要,否则你会得到 <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
基本上,您首先将每个 space 更改为 |
,然后将任何两个相邻的 (||
) 更改为 <br /><br />
。
如果你走另一条路,你会将两个 space 更改为 <br /><br />
然后你将单个 space 更改为 |
并且在 <br />
有一个 space,所以你最终得到 <br|/>
。
使用您的代码进行编辑:
'<tr class="' . ($counter++ % 2 ? "odd" : "even") . '">
<td>Garments:</td>
<td>' . str_replace(array(' ','||'), array('|','<br /><br />'), trim($result['garment_type'] )) . '</td>
</tr>'
要解决 str_replace
的问题(<br />
中的 space 被替换为 |
)尝试 strtr
:
echo strtr(trim($result['garment_type']), array(' '=>'|', ' '=>'<br /><br />'));