簡體   English   中英

拆分HTML文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM