2017-06-28 12 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/deletedivにできるようにしたいです。 ファイルの名前と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間のすべてをキャプチャする正規表現パターンを使用して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); 
関連する問題