从字符串中删除特定字符的方法?

2022-08-30 16:24:05

我需要从下面的变量值中删除括号“[”和“]”,并将结果存储在.$widget_text$widget_id

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

使用 ,还是其他内容?preg_replacestr_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));

推荐