В настоящее время у меня есть этот код, который заменяет любой двойной пробел с <br />
,
Работает как положено:
<tr class="' . ($counter++ % 2 ? "odd" : "even") . '">
<td>Garments:</td>
<td>' . str_replace(' ', '<br /><br />', trim($result['garment_type'] ) ) . '</td>
</tr>
Однако я хочу сделать другое str_replace()
на той же строке, чтобы заменить любые пробелы символом трубы |
,
Я попытался дублировать код, но это просто создает другой TD
для меня.
Любая помощь будет оценена.
Порядок массива имеет значение, иначе вы получите <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>'
Вы можете передавать массивы в str_replace
$what[0] = ' ';
$what[1] = ' ';
$with[0] = '<br /><br />';
$with[1] = '|';
str_replace($what, $with, trim($result['garment_type'] ) )
Чтобы обойти проблемы с str_replace
(пробел в <br />
заменяется |
) пытаться strtr
:
echo strtr(trim($result['garment_type']), array(' '=>'|', ' '=>'<br /><br />'));