Второй параметр, равный trim, не является строкой как таковой, больше списка символов, которые вы хотите удалить из начала и конца строки. Итак, вы говорите, чтобы полосать все ведущие и задние <
, >
, \
, b
и r
символов.
Может попробовать что-то вроде этого регулярного выражения раздеть то, что вы хотите от переднего и конце строки ...
//trim from start
$str=preg_replace('{^(?:<br />|</br>|\s+)+}', '', $str);
//trim from end
$str=preg_replace('{(?:<br />|</br>|\s+)+$}', '', $str);
Просто, чтобы сломать, что первый ...
- I я использовал
{}
, чтобы разграничить мое регулярное выражение, так что мне не нужно избегать матчей на косых чертах, которые мне пришлось бы использовать, если бы я использовал «нормальный» разделитель //
^
закрепляет матч с начало строки
(?: )
это просто группа вещей, которые мы хотим, чтобы искать
- внутри группы, мы сопоставляем либо
<br />
, </br>
или любые пробельные последовательности \s+
- вы можете увидеть каждый из этих паттернов, разделенные |
в указывают на каждый возможный альтернативный матч
- группа следует
+
указать, мы хотим, чтобы найти один или несколько матчей этой группы
Второй похож, но привязывается к концу строки с $
Вы читали документацию для [отделка] (http://www.php.net)? Он не обрезает '
'. Он обрезает '<', тогда 'b', затем' r', затем пробелы, затем '/' и s 'и' '' '' '. – h2ooooooo
Обратите внимание на описание функции на странице ['trim' manual] (http://php.net/trim). – Gumbo
Как насчет strip_tags? –