1

我正在制作一个网站,我希望左侧的一列成为链接列表。填充有链接的列将出现在整个站点的每个网页上,并且会经常更新更多链接。所以我需要解决的问题是如何做到这一点,以便每当我想向我的网站的“链接列表”添加新链接时,我不必在每个网页的 HTML 代码中手动添加它。

我知道一些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>

当引用包含声明的 php 文件时,它是我应该使用的相对路径,还是绝对和虚拟引用也可以?

提前感谢您的意见

4

2 回答 2

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如果它不被使用,就像echostring一样,

<?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>
于 2013-10-31T04:23:13.517 回答
1

当引用包含声明的 php 文件时,它是我应该使用的相对路径,还是绝对和虚拟引用也可以?

你所做的很好,但是围绕 PHP 的include path有一些需要注意的地方。

include包含路径是服务器文件系统路径的 FIFO 堆栈,PHP 在解析和require语句中提供的路径(可能还有其他一些东西)时将其用作基本目录。基本包含路径通常包括.(或当前工作目录)。这被解析为包含执行的第一个(父)PHP 脚本的目录。一旦你深入一些,这可以抓住人们。

我发现通常最有效的方法是在包含路径前加上__DIR__常量。这将解析为当前脚本的父目录。

例如,假设您有以下目录结构

foo.php
bar.php
dir/baz.php

要包含bar.phpfrom foo.php,您可以使用

include __DIR__ . '/bar.php';

包括bar.phpdir/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
于 2013-10-31T04:31:12.017 回答