我需要从下面变量值的$widget_text
中删除括号“[”和“]”,并将结果存储在$widget_id
中。
$widget_text = '[widget_and-some-text]';
$widget_id = ?;
使用preg_replace
,str_replace
或其他什么?
答案 0 :(得分:48)
有几种方法可用,有时可以使它们执行完全相同的任务,例如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
);
答案 1 :(得分:6)
$widget_id = str_replace('[', '', str_replace(']', '', $widget_text));
答案 2 :(得分:1)
如果括号始终位于第一个和最后一个位置,请使用:
$widget_id = substr($widget_text, 1, strlen($widget_text)-2);
我认为这是一种更快的方式...