Мне нужно удалить скобки «[» и «]» из $widget_text
в приведенном ниже значении переменной и сохранить результат в $widget_id
.
$widget_text = '[widget_and-some-text]'; $widget_id = ?;
Используйте preg_replace
, str_replace
или что-то еще?
Существует несколько доступных методов, и иногда их можно выполнять для выполнения одной и той же задачи, например preg_replace / str_replace. Но, возможно, вы хотите удалить скобки только с начала или конца строки; в этом случае работает preg_replace. Но, если может быть несколько скобок, preg_replace также может выполнить эту работу. Но обрезка проще и имеет больше смысла.
preg_replace () – удаляет начальные и конечные скобки
$widget_id = preg_replace(array('/^\[/','/\]$/'), '',$widget_text);
str_replace () – это удаляет скобки в любом месте текста
$widget_id = str_replace(array('[',']'), '',$widget_text);
trim () – выравнивает скобки от начала и конца
$widget_id = trim($widget_text,'[]')
substr () – делает то же самое, что и trim () (если текст виджета не содержит закрывающих скобок внутри текста)
$widget_id = substr($widget_text, $start = strspn($widget_text, '['), strcspn($widget_text, ']') - $start );
$widget_id = str_replace('[', '', str_replace(']', '', $widget_text));
Если скобки всегда находятся в первой и последней позиции, используйте следующее:
$widget_id = substr($widget_text, 1, strlen($widget_text)-2);
Я думаю, что это более быстрый способ …