我正在制作一个网站,我希望左侧的列是链接列表。填充链接的列将出现在整个站点的每个网页上,并且会非常频繁地更新更多链接。所以我需要解决的问题是如何做到这一点,以便每当我想向我的网站的"链接列表"添加新链接时,我就不必在每个网页的 HTML 代码中手动添加它。
我知道一些Java,但我完全不熟悉PHP。我做了一些研究,发现了"include"声明,并把一些确实有效的东西放在一起,但我不知道这是否是一个好主意 - 好像它的糟糕代码/糟糕的风格,所以我可以得到一些意见请问?它是好代码吗?还是我走错了路?
包含数组的整个 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 文件时,它是我应该使用的相对路径,还是绝对引用和虚拟引用也可以?
提前感谢您的输入
您的$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
,只需将其用作string
,echo
就像它一样,
<?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>
当使用 include 声明引用 php 文件时,它是我应该使用的相对路径,还是绝对引用和虚拟引用也可以?
你正在做的事情很好,但是围绕PHP的包含路径有一些要点需要警惕。
包含路径是服务器文件系统路径的 FIFO 堆栈,PHP 在解析 include
和 require
语句(可能还有其他一些内容)中提供的路径时将用作基目录。基本包含路径通常包括.
(或当前工作目录)。这被解析为包含执行的第一个(父)PHP 脚本的目录。一旦你深入几个,就可以把人赶出去。
我发现通常最有效的方法是在包含路径前面加上__DIR__
常量。这将解析为当前脚本的父目录。
例如,假设您有以下目录结构
foo.php
bar.php
dir/baz.php
要包含来自foo.php
bar.php
,您可以使用
include __DIR__ . '/bar.php';
包含来自dir/baz.php
bar.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