簡體   English   中英

php file_get_contents循環同一目錄中的所有文件

[英]php file_get_contents loop all files in same directory

我正在使用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

我不久前寫了一個類似於您的需求的函數:

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')

foreach (glob("*.html") as $file) {
$page = file_get_contents($file);
$current = preg_replace('<!--[^\[](.*?)-->', '', $page);
file_put_contents($file, $current);
echo $file . "<br>";
}

這可行。 它從文件夾中的每個html文件中刪除所有html注釋。 感謝您指出正確的方向!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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