2012-06-12 27 views
0

正则表达式时,你得到的数据我有一个字符串:错误使用PHP

$text =array(); 
$text[0] = "Microsoft Windows Phone 7.5 Mango"; 
$text[1] = "Microsoft Windows Phone 7"; 


for($i=0; $i<2; $i++){ 
    preg_match_all('/(Microsoft Windows)<\/i>\s*(.*)/', $text[$i], $value) ; 
    print_r($value); 
} 

当我的print_r($值)是结果阵列()()数组,如何解决呢?

回答

4

删除<\/i>这是一个没有出现在输入字符串中的结束HTML标记。

0

您可以像@Sarke一样提及并删除<\/i>。但是,如果这个代码可能要解析包含此标签的字符串,然后让你的表情忽略它:

preg_match_all('/(Microsoft Windows)(<\/i>)?\s*(.*)/', $text[$i], $value) ; 

此外,我会建议,而不是硬编码的数组的长度,使用count(),就像这样:

for($i=0; $i<count($text); $i++) { 

这样,你的代码更面向未来的,如果/当你$text阵列进行更改的项目的数量。

+1

也可以使用foreach($ text作为$ t)。 – Sarke