不久之前,我发了一篇帖子(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变量也引起了这个问题。
谢谢, 基隆
答案 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;