2009-04-22 11 views
2

是否有可能将文件的内容分割成具有特定模式的部分?是否可以使用自定义模式分割文件内容?

这就是我想要达到的目标:

  • 使用的file_get_contents
  • 只读类似的评论区之间的内容读取文件。

我不知道如何复杂的是,但基本上如果我解析一个大的HTML文件,只希望显示在浏览器中的特定部件(模式是评论界)是这样的:

样品:

<html> 
<head> 
    <title>test</title> 
</head> 
<body> 
this content should not be parsed.. ignored 
<!-- widget --> 
this is the widget. i want to parse this content only from the file 
<!-- widget --> 
</body> 
</html> 

是否有可能使用PHP和正则表达式或任何东西来解析仅限于边界之间的内容?

我很抱歉,但我尽力解释我想达到的目标。希望有人帮助我。

回答

6

这当然是可能的,但它并不需要用正则表达式来完成。我可能只是做这样的事情:

$file = file_get_contents('http://example.com/'); 
$widgets = explode('<!-- widget -->', $file); 

现在的$widget[1], [3], [5]等)的奇数元素包含的内容是这些边界之间。

+0

我真的不认为它是那么容易!非常感谢 – 2009-04-22 19:39:09

1

你可以用一个正则表达式来实现你想要的东西(或者如果你只是分裂你可能就可以使用它)。检查文档。另一个使用explode()的答案也可能起作用。

$text = file_get_contents('/path/to/your/file'); 
$array = split('<!-- widget -->', $text); 

的第一项将是<!-- widget -->第一次出现的最后一个元素之前,一切都会过去的<!-- widget -->后的一切。每个奇数元素都将成为你正在寻找的东西。

Php split function documentation

+0

非常非常好。快速的问题..爆炸和拆分有什么实际区别? – 2009-04-22 19:39:39

1
​​
相关问题