簡體   English   中英

檢查文件目錄中的字符串,但不包括子目錄

[英]Checking for string within a directory of files but not including subdirectories

我正在嘗試編寫一個程序,該程序將打開一個目錄(在本例中為files /),掃描此目錄中的所有文件名(不包括任何目錄或“ ..”或“。”),並搜索“頁面”數組中指定文件中的文件名。 如果在頁面中找不到文件名,則文件將被移至“未使用的內容”。

我當前的代碼不起作用。 我怎樣才能實現這個目標?

<?php

if($handle = opendir('files/')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            $file_names[] = $entry;
        }
    }
    closedir($handle);
}

$pages = array("page1.html","page2.shtml","page_three.shtml","page4.htm","page5.shtml");

for($x=0; $x<sizeOf($pages); $x++) {
  $current_page = file_get_contents($pages[$x]);
    for($i=0; $i<sizeOf($file_names); $i++) {
        if(!strpos($current_page,$file_names[$i])) {
            if (copy("files/".$file_names[$i],"files/unused-content/".$file_names[$i])) {
                unlink("files/".$file_names[$i]);
            }
        }
    }
}

?> 

謝謝!

您不需要所有那么長的代碼..您所需要的只是FilesystemIterator

$pages = array("1.xml","page2.shtml","page_three.shtml","page4.htm","page5.shtml");
$dir = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
foreach ( $dir as $file ) {
    if ($file->isFile() && in_array(strlen($file->getFilename()), $pages)) {
        // copy
        // unlink
    }
}

查看使用GlobIterator的另一個示例

嘗試做這樣的事情:

<?php

if($handle = opendir('files/')) {
  $i=0;
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            $file_names[$i] = $entry;
        }
        $i++;
    }
    closedir($handle);
}

$pages = array("page1.html","page2.shtml","page_three.shtml","page4.htm","page5.shtml");

for($x=0; $x<sizeOf($pages); $x++) {
  $current_page = file_get_contents($pages[$x]);
    for($i=0; $i<sizeOf($file_names); $i++) {
        if(!strpos($current_page,$file_names[$i])) {
            if (copy("files/".$file_names[$i],"files/unused-content/".$file_names[$i])) {
                unlink("files/".$file_names[$i]);
            }
        }
    }
}

?> 

暫無
暫無

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

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