2009-04-22 38 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
​​
相關問題