$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
}