[英]Split HTML files
如何使用PHP將HTML格式的文件拆分為多個HTML文件(帶有HTML,HEAD和BODY標記)? 對於我想要剪切的所有地方,我會有一個占位符標記(類似<div class='placeholder'></div>
)。
謝謝。
$sourceHTML = file_get_contents('sourcefile');
$splitContents = explode("<div class='placeholder'></div>", $sourceHTML);
foreach ($splitContents as $html) {
// save html to file
}
編輯:哎呀。 正如user201140正確指出的那樣,我錯過了每個html文件必須是有效文檔的事實。 由於未指定head標記應包含的內容,我將假設組合文檔的head標記應復制到每個副本。 在這種情況下:
$sourceHTML = file_get_contents('sourcefile');
preg_match("/(^.*<body.*?>)(.*)(<\/body.*$)/is", $sourceHTML, &$matches);
$top = $matches[1];
$contents = $matches[2];
$bottom = $matches[3];
$splitContents = explode("<div class='placeholder'></div>", $contents);
foreach ($splitContents as $chunk) {
$html = $top.$chunk.$bottom;
// save html to file
}
preg似乎只適用於小文件...
無論如何......要拆分此表單的HTML文件:
(header...) <body><div class='container'> (intro...)
<h3>Sect 1</h3> (section...)
<h3>Sect 2</h3> (section...)
(etc...)
</div></body></html>
我這樣管理:
$splitContents = explode("<h3", $sourceHTML);
$i=0;
$last=count($splitContents)-1;
foreach ($splitContents as $chunk) {
if($i==0) {
$beginning=explode("<body", $chunk);
$top=$beginning[0];
$html = $chunk ;
} else {
$html = $top . "<body><div class='container'><h3" . $chunk ;
}
if($i !=$last) $html .= "</div></body></html>";
// save html to file
++$i;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.