基本 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 堆栈,在解析 include
和 require
语句(可能还有其他一些东西)中提供的路径时,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 文件传递到另一个的主要内容,如果未能解决你的问题,请参考以下文章
将数组从 php 传递到 MySQL 存储过程的最佳方法是啥?
将数组响应从 PHP 传递到 iOS 应用程序(使用 Swift)
通过 AJAX 将数组从 php 传递到 javascript