我需要从下面变量值的$widget_text
中移除方括号"["和"]",并将结果存储在$widget_id
中。
$widget_text = '[widget_and-some-text]';
$widget_id = ?;
使用 preg_replace
、str_replace
或其他方法?
有多种方法可用,它们有时可以执行完全相同的任务,如 preg_replace/str_replace。但是,也许您只想从字符串开头或结尾删除括号,在这种情况下 preg_replace 可以起作用。但是,如果可能有多个括号,则 preg_replace 也可以完成任务。但 trim 更简单,更合理。
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
);
$widget_id = str_replace('[', '', str_replace(']', '', $widget_text));
$widget_id = str_replace(array('[', ']'), '', $widget_text);
的意思是用空字符替换 $widget_text
中的方括号 [ ]
,并将结果赋值给 $widget_id
变量。 - Carlos Campderrós$widget_id = substr($widget_text, 1, strlen($widget_text)-2);
我认为这是一种更快的方法...