2013-07-04 40 views
0

我有一個字符串,其中包含許多字符,我需要從中獲取數據。 首先,我用';'爆炸了,現在我有一個數組,每行都有一個單詞放在引號中。使用preg_replace將單詞變成引號

我想刪除所有,更少的這個單詞成引號。我知道使用preg_match可以更容易地獲得這些單詞,但是如何進入數組中,再次保存以便再次遍歷數組,我想直接使用preg_replace來清理它。

$array = explode(';', $string); 

//36 => string 's:7:"trans_1"' (length=13) 
//37 => string 's:3:"104"' (length=9) 
//38 => string 's:5:"addup"' (length=11) 
//39 => string 's:1:"0"' (length=7) 

$array = preg_replace('! !i', '', $array); 

我想獲得:

//36 => string 'trans_1' (length=6) 
//37 => string '104' (length=3) 
//38 => string 'addup' (length=5) 
//39 => string '0' (length=1) 

我tryed型動物的事情,但我不能擺脫掉引號以外的字母。

回答

2

雖然這不是您的問題的直接答案,但它可以解決您的問題。您正在查看的數據來自php函數serialize()以從該字符串檢索數據,您需要使用php函數unserialize()

$data = unserialize($string); 
2

你可以嘗試

preg_replace('!.*"([^"]*)".*!i', '\1', $array); 

\1指第一捕獲組!

+0

你也許甚至可以使用的preg_match,以避免爆炸在第一種情況下 – chrislondon

+0

@chrislondon indeed..hope運讀取您的評論串.. :-) – Anirudha

+0

@Anirudh它的工作原理,爲您快速解答謝謝! – sebasparola