Ответ 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
);