从父目录中的所有PHP文件中搜索特定字符串(已更新)

时间:2016-05-22 01:54:37

标签: php loops count themes frontend

不久之前,我发了一篇帖子(Searching for a specific string from all PHP files in the parent directory),这篇文章是关于我在数组中找到文件路径的位置,只有当文件有特定的关键字时才会这样。

然而,那是在我的旧网站上,我现在丢失了。所以我正在重新创建它。但是,由于某些原因,此功能不起作用。

  public function build_active_theme() {
$dir = CONPATH . '/themes/' . $this->get_active_theme() . '/';

$theme_files = array();
foreach(glob($dir . '*.php') as $file) {
    $theme_files[] = $file;
}

$count = null;
foreach($theme_files as $file) {
    $file_contents = file_get_contents($file);
    if(strpos($file_contents, 'Main')) {
        $array_pos = $count;
        $main_file = $theme_files[$array_pos];

        echo $main_file;
    }
    $count++;
}

}

此功能导致以下错误:

  

注意:未定义的索引:在第30行的/home/u841326920/public_html/includes/class.themes.php中

我已经将问题缩小了$ count变量的问题。每当我尝试在脚本找到正确文件后回显$ count值时,都不会显示任何内容。

但是在这么简单的问题上花了近一个小时后,显然开始让我感到沮丧,所以我现在正在寻求帮助。

(注意:我直接将旧帖子中的函数直接复制到我的代码中,并对变量做了相应的更改,以便在新网站中工作,所以它几乎就是这样与修复我之前的问题的解决方案完全相同 - 有趣的是,$ count变量也引起了这个问题。

谢谢, 基隆

2 个答案:

答案 0 :(得分:3)

您可以使用foreach $ key而不是单独的count变量,请尝试下面的代码:

foreach($theme_files as $key => $file) {
    $file_contents = file_get_contents($file);
    if(strpos($file_contents, 'Main') !== false) {
        $main_file = $theme_files[$key];

        echo $main_file;
    }
}

答案 1 :(得分:0)

你正在设置         $ count = null; ,尝试之前的++          $ array_pos = $ count;