Способы удаления определенных символов из строки?

Мне нужно удалить скобки "[" и "]" из $widget_text в приведенном ниже значении переменной и сохранить результат в $widget_id.

$widget_text = '[widget_and-some-text]';
$widget_id = ?;

Используйте preg_replace, str_replace или что-то еще?

Ответ 1

Существует несколько доступных методов, и иногда их можно выполнять для выполнения одной и той же задачи, например 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
             );

Ответ 2

$widget_id = str_replace('[', '', str_replace(']', '', $widget_text));

Ответ 3

Если скобки всегда в первой и последней позиции, используйте это:

$widget_id = substr($widget_text, 1, strlen($widget_text)-2);

Я думаю, что это более быстрый способ...