我有一个小的,简单的网站与投资组合。作品集中有五个项目,每个项目都在自己的文件夹中。每个/portfolio/project/index.php
页面的顶部都有一组变量,有点像YAML的前端内容,但它只是一组PHP变量。
我想在投资组合的/portfolio/index.php
页面上放一个循环,查看每个项目文件夹,读取索引文件,并自动创建一个链接到每个投资组合文件夹(不是文件,只是文件夹,如"/portfolio/project-x/
"),页面的$pageLink
和$pageTitle
放置在锚标记内。
这个想法是,如果我添加另一个项目,我可以把一个新的项目文件夹放到文件夹中,它会显示为一个链接在文件夹页面上,感谢循环。
我刚学PHP,我搞不懂。我读过关于范围的书,但我还是遗漏了一些东西。我尽量让这一切变得简单。
/portfolio/project-1/index.php
/portfolio/project-2/index.php
/portfolio/project-3/index.php
/portfolio/project-4/index.php
/portfolio/project-5/index.php
每个/project-x/index.php
页面都有如下一组变量:
<?php
$pageTitle = "Project X";
$pageLink = "/portfolio/project-x/";
?>
在/portfolio/index.php
页面上,我尝试了很多事情,但我没有得到它。
这是我的总体概念:
<?php
foreach(glob("/portfolio/*/index.php") as $project){
echo "<a href="" . $project->$pageLink . "">" . $project->$pageTitle . "</a>" . "<br>";
}
?>
我设法让它有点工作一次,但循环从作品集页面的标题,并重复它。然后我搞砸了,再也回不去了。可能有些东西我应该读一下,但我不知道该找什么。
任何帮助都是感激的。谢谢你。
在使用文件中的变量之前,需要对文件进行include
。注意,您添加的项目越多,索引页的性能就会降低,但影响可能可以忽略不计。
<?php
foreach (glob('portfolio/*/index.php') as $file) {
ob_start();
include $file;
ob_end_clean();
echo '<a href="'.$pageLink.'">'.$pageTitle.'</a><br>' . PHP_EOL;
}
循环结束后,$pageLink
和$pageTitle
仍然保存最后一个要包含的文件的值。