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

Posted

技术标签:

【中文标题】基本 PHP:将数组从一个 PHP 文件传递​​到另一个【英文标题】:Basic PHP: Passing An Array From One PHP file to Another 【发布时间】:2013-11-10 23:24:20 【问题描述】:

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

提前感谢您的意见

【问题讨论】:

没有任何列表可能会出现对齐问题。在 inculde 之前添加 ui/ol 【参考方案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>

【讨论】:

【参考方案2】:

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

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

包含路径是服务器文件系统路径的 FIFO 堆栈,在解析 includerequire 语句(可能还有其他一些东西)中提供的路径时,PHP 将用作基本目录。基本包含路径通常包括.(或当前工作目录)。这被解析为包含执行的第一个(父)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

【讨论】:

以上是关于基本 PHP:将数组从一个 PHP 文件传递​​到另一个的主要内容,如果未能解决你的问题,请参考以下文章

将数据库和PDO选项数组传递到我的连接PHP文件中

将数组从 php 传递到 MySQL 存储过程的最佳方法是啥?

将数组响应从 PHP 传递到 iOS 应用程序(使用 Swift)

通过 AJAX 将数组从 php 传递到 javascript

使用 JSON 将数据从 PHP 数组传递到 Highcharts 图表

如何将 MB 的数据从 PHP 传递到 Javascript [关闭]