分割HTML档案

use*_*est 1 html css php file-io

如何使用PHP将HTML格式的文件拆分为几个HTML文件(带有HTML,HEAD和BODY标签)?我<div class='placeholder'></div>要剪切的所有地方都会有一个占位符标签(类似)。

谢谢。

sid*_*eal 5

$sourceHTML = file_get_contents('sourcefile');

$splitContents = explode("<div class='placeholder'></div>", $sourceHTML);

foreach ($splitContents as $html) {
    // save html to file
}
Run Code Online (Sandbox Code Playgroud)

编辑:哎呀。正如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
}
Run Code Online (Sandbox Code Playgroud)