2011-03-25 62 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和字符串中的最後一個字符(不管他們是什麼字符)。

相關問題