There are several methods available, and they can sometimes be made to perform exactly the same task, like preg_replace/str_replace. But, perhaps you want to remove brackets only from the beginning or end of the string; in which case preg_replace works. But, if there could be several brackets, preg_replace can do the job too. But trim is easier and makes more sense.
preg_replace() - removes beginning and trailing brackets
$widget_id = preg_replace(array('/^[/','/]$/'), '',$widget_text);
str_replace() - this removes brackets anywhere in the text
$widget_id = str_replace(array('[',']'), '',$widget_text);
trim() - trims brackets from beginning and end
$widget_id = trim($widget_text,'[]')
substr() - does the same as trim() (assuming the widget text does not include any closing brackets within the text)
$widget_id = substr($widget_text,
$start = strspn($widget_text, '['),
strcspn($widget_text, ']') - $start
);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…