我正在使用PHP中的简单注释删除脚本。我想做的是为同一目录中的所有文件循环整个脚本。此时我并不关心子目录或子文件夹。此示例只有1个文件。我知道我们需要做一个do..while循环,但是什么是正确的语法?
<?php
$file='home.html';
$page = file_get_contents($file);
$current = preg_replace('<!--[^\[](.*?)-->', '', $page);
file_put_contents($file, $current);
echo $current;
?>
我有一个充满* .html文件的文件夹,因此这个脚本会读取每个带有* .html扩展名的文件并应用preg_replace。
提前致谢!
V
答案 0 :(得分:2)
我不久前写了一个类似你需要的功能:
private function getFilesByPattern($pattern = '*.html', $flags = 0)
{
$files = glob($pattern, $flags);
foreach (glob(dirname($pattern) . '/*', GLOB_ONLYDIR | GLOB_NOSORT) as $dir) {
$files = array_merge($files, $this->getTestFiles($dir . '/' . basename($pattern), $flags));
}
return $files;
}
此功能还可以通过子目录重复搜索!对于$flags
,请查看glob的标志:http://php.net/manual/de/function.glob.php
可以像这样调用:getTestFiles('../src/directory/*.html')
答案 1 :(得分:0)
foreach (glob("*.html") as $file) {
$page = file_get_contents($file);
$current = preg_replace('<!--[^\[](.*?)-->', '', $page);
file_put_contents($file, $current);
echo $file . "<br>";
}
这很有效。它会删除文件夹中每个html文件的所有html注释。谢谢你指出我正确的方向!