基本PHP:将数组从一个PHP文件传递到另一个PHP文件

时间:2013-10-31 04:14:12

标签: php html wamp mamp lamp

我正在创建一个网站,我希望左侧的列成为链接列表。填充了链接的列将位于整个站点的每个网页上,并且会经常使用更多链接进行更新。所以我需要解决的问题是如何制作它以便每当我想在我的网站的“链接列表”中添加新链接时,我就不必在每个网页的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文件时,它是我应该使用的相对路径,还是绝对和虚拟引用也可以?

提前感谢您的意见

2 个答案:

答案 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将在解析includerequire语句(以及可能的其他一些内容)中提供的路径时将其用作基本目录。基本包含路径通常包括.(或当前工作目录)。这被解析为包含执行的第一个(父)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