我有一个小,简单的网站与投资组合。公文包中有五个项目,每个项目都在自己的文件夹中。每个/portfolio/project/index.php页面的顶部都有一组变量,有点像YAML的前置内容,但它只是一组PHP变量。
我想在公文包的/portfolio/index.php页面上放一个循环,查看每个项目文件夹,读取索引文件,并自动创建到每个公文包文件夹(不是文件,只是“/portfolio/project-x/”中的文件夹)的链接,并将页面的$pageLink和$pageTitle放在锚点标记中。
这个想法是,如果我添加另一个项目,我只需要将一个新的项目文件夹放到portfolio文件夹中,它将在portfolio页面上显示为一个链接,这要归功于循环。
我只是在学习PHP,我还不能理解它。我读过关于scope的文章,但我仍然遗漏了一些东西。我试着让它变得非常简单。
/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>";
}
?>我设法让它工作了一次,但循环从文件夹页面中取出标题并重复它。然后我把它搞乱了,再也回不来了。可能有一些我应该阅读的东西,但我不知道要搜索什么。
任何帮助都是非常感谢的。谢谢。
发布于 2021-10-24 01:01:50
在使用文件中的变量之前,需要对文件执行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仍将保留要包含的最后一个文件的值。
https://stackoverflow.com/questions/69693041
复制相似问题