2013-07-04 45 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