2017-06-28 35 views
0

我有一個腳本,用於創建包含一些數據的文件。 內容通過DIV與類分隔,例如:從使用fopen創建的文件中刪除元素的內容

<div class="2017-02-01-20-35-company1"> 
//content 
</div> 
<div class="2017-02-01-20-35-company2"> 
//content 
</div> 

不過,我希望能夠edit/delete每個div從創建的文件,而不僅僅是創建文件或完全刪除。 我可以檢索文件的名稱和div的名稱。

但是有可能刪除我想要刪除的div以及它的內容嗎?

謝謝。

+2

讓你用它來生成不同格式的文件中的信息,無論是在數據庫或文件中,對其進行操作並在每次更改後重新生成HTML文件。這更容易,更不容易出錯。 – axiac

+0

閱讀也許:https://stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html-xml-in-php – timiTao

+2

你當然可以使用一個DOM解析器來處理這樣的結構。但將它保存在一個文件中意味着您必須重新閱讀,重新解析併爲每次修改重新編寫它。將信息保存在某些更適合這類任務的存儲位置上更有意義,通常是@axiac上面提到的數據庫,並且只在您實際需要時才導出當前狀態。 – arkascha

回答

1

假設您知道要使用正則表達式模式將其刪除的div類,以捕獲已知div(包括其標記)之間的所有內容。

這是通過使用的preg_replace()來實現

我會按照其方法是:

<?php 
//Set div class string to remove 
$classString = "2017-02-01-20-35-company1"; 

//Get file contents 
$contents = file_get_contents("/path/to/file.html"); 

//Remove div from contents 
$search = '/[<div class="'.$classString.'">](.*)[<\/div>]/'; 
$contents = preg_replace($search, '', $contents); 

//Save file again 
file_put_contents("/path/to/file.html", $contents);