我正在创建一个网站,我希望左侧的列成为链接列表。填充了链接的列将位于整个站点的每个网页上,并且会经常使用更多链接进行更新。所以我需要解决的问题是如何制作它以便每当我想在我的网站的“链接列表”中添加新链接时,我就不必在每个网页的HTML代码中手动添加它。 / p>
我知道一些Java,但我对PHP完全不熟悉。我做了一些研究,发现了“包含”声明,并且发现了一些有用的东西,但是我不知道这是否是一个好主意 - 如果它的代码不好/样式不好,那么我对此有何意见?好的代码吗?或者我是以错误的方式去做的?
包含数组的整个php文件,标题为“videos_array.php”:
<?php
$videoArr = array(
"<li><a href=\"http://www.youtube.com/arbitraryvideo1\">Video 1</a></li>",
"<li><a href=\"http://www.youtube.com/arbitraryvideo2\">Video 2</a></li>",
"<li><a href=\"http://www.youtube.com/arbitraryvideo3\">Video 3</a></li>");
?>
我希望将这些值插入的网页如下所示:
<html>
<head>
<!--All the necessary tags-->
</head>
<body>
<!--More Tags-->
<div id="link_column">
<?php include 'videos_array.php';
foreach($videoArr as $val){
echo $val;
}
?>
</div>
</body>
</html>
使用include声明引用php文件时,它是我应该使用的相对路径,还是绝对和虚拟引用也可以?
提前感谢您的意见
答案 0 :(得分:1)
您的$videoArr
仅使用一次,因此无需在另一个php file
中使用它,您可以echo
宣布它之后,
<?php
$videoArr = array(
"<li><a href=\"http://www.youtube.com/arbitraryvideo1\">Video 1</a></li>",
"<li><a href=\"http://www.youtube.com/arbitraryvideo2\">Video 2</a></li>",
"<li><a href=\"http://www.youtube.com/arbitraryvideo3\">Video 3</a></li>"
);
foreach($videoArr as $val){
echo $val;
}
?>
即使也不需要创建array
如果echo
仅使用它string
,
<?php
echo "<li><a href=\"http://www.youtube.com/arbitraryvideo1\">Video 1</a></li>",
"<li><a href=\"http://www.youtube.com/arbitraryvideo2\">Video 2</a></li>",
"<li><a href=\"http://www.youtube.com/arbitraryvideo3\">Video 3</a></li>";
?>
在你的index page
中使用它,
<div id="link_column">
<?php include 'videos_array.php';?>
</div>
答案 1 :(得分:1)
使用include声明引用php文件时,它是我应该使用的相对路径,还是绝对和虚拟引用也可以?
你正在做的事情没什么问题但是有些事情需要警惕PHP的包含路径。
包含路径是服务器文件系统路径的FIFO堆栈,PHP将在解析include
和require
语句(以及可能的其他一些内容)中提供的路径时将其用作基本目录。基本包含路径通常包括.
(或当前工作目录)。这被解析为包含执行的第一个(父)PHP脚本的目录。一旦你去了一些包含深度,这可以吸引人们。
我发现通常效果最好的是为包含__DIR__
常量的路径添加前缀。这将解析为当前脚本的父目录。
例如,假设您有以下目录结构
foo.php
bar.php
dir/baz.php
要包含bar.php
中的foo.php
,您可以使用
include __DIR__ . '/bar.php';
要包含bar.php
dir/baz.php
include __DIR__ . '/../bar.php';
您还可以操纵include_path
配置。例如(在foo.php
)
// add "dir" to the top of the include path stack
set_include_path(implode(PATH_SEPARATOR, [
realpath(__DIR__ . '/dir'),
get_include_path()]));
// now include baz.php
include 'baz.php'; // this works because we added "dir" to the include path