Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
156 views
in Technique[技术] by (71.8m points)

php - Methods to remove specific characters from string?

I need to remove the brackets "[" and "]" from $widget_text in the variable value below and store the result in $widget_id.

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

Use preg_replace, str_replace or something else?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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
             );

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...