2011-03-25 66 views
0

鉴于$ widget_text字符串变量...字符串操作从字符串中删除令牌并将结果分配给一个变量?

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

我需要做一个字符串操作,结束了...

$widget_text_sanitized = 'and-some-text'; 

如何?

即,我想这应该工作:

$widget_text = trim($widget_text,'[]'); 
$widget_text_sanitized = str_replace('widget_','',$widget_text); 
+0

那么它总是'widget_'必须被删除? – 2011-03-25 18:42:56

+0

是的。我使用'widget_'作为标记标记,然后“and-some-text”成为用于将小部件分配到侧边栏的标识 – 2011-03-25 18:45:23

+0

<?php列表($ widget,$ widget_text_sanitized)= explode( “_”,$ widget_text); echo $ widget_text_sanitized;?>' – EmCo 2011-03-25 18:46:20

回答

2

使用正则表达式,你可以有这样的事情:

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

if (preg_match('/\[widget_([^\]]+)\]/', $widget_text, $matches)) { 
    var_dump($matches[1]); 
} 

这将让你:

string 'and-some-text' (length=13) 
+0

这是要走的路线+1。没有庞大的strpos + substr魔术,但是一个consice正则表达式。 – NikiC 2011-03-25 19:03:02

+0

+1感谢帕斯卡的帮助。 – 2011-03-27 19:34:45

+0

不客气:-)玩得开心! – 2011-03-27 19:39:05

0
$widget_text_sanitised = substr($widget_text, 8, -1); 

这将删除t他第一个8和字符串中的最后一个字符(不管他们是什么字符)。

相关问题