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

Sco*_*t B 16 php string

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

$widget_text = '[widget_and-some-text]';
$widget_id = ?;
Run Code Online (Sandbox Code Playgroud)

使用preg_replace,str_replace或其他什么东西?

Pet*_*ist 49

有几种方法可用,有时可以使它们执行完全相同的任务,例如preg_replace/str_replace.但是,也许你只想从字符串的开头或结尾删除括号; 在这种情况下preg_replace工作.但是,如果可以有多个括号,preg_replace也可以完成这项工作.但修剪更容易,更有意义.

preg_replace() - 删除开始和结尾括号

$widget_id = preg_replace(array('/^\[/','/\]$/'), '',$widget_text);      
Run Code Online (Sandbox Code Playgroud)

str_replace() - 这将删除文本中任何位置的括号

$widget_id = str_replace(array('[',']'), '',$widget_text);
Run Code Online (Sandbox Code Playgroud)

trim() - 从开头和结尾修剪括号

$widget_id = trim($widget_text,'[]')
Run Code Online (Sandbox Code Playgroud)

substr() - 与trim()相同(假设窗口小部件文本不包含文本中的任何右括号)

$widget_id = substr($widget_text,
                    $start = strspn($widget_text, '['),
                    strcspn($widget_text, ']') - $start
             );
Run Code Online (Sandbox Code Playgroud)


Mic*_*ter 6

$widget_id = str_replace('[', '', str_replace(']', '', $widget_text));
Run Code Online (Sandbox Code Playgroud)

  • `$ widget_id = str_replace(array('[',']'),'',$ widget_text);`更好 (8认同)