包括文件时我想知道的事情:
假设我想包含一个文件或链接到它。我应该举个例子:
include("../localfile.php");
还是我应该改用
include("http://sameserver.com/but/adirect/linkto/localfile.php");
这个比那个好吗?还是更安全?还是只是个人喜好?
显然,如果您有一个要包含在多个目录中的文件中的文件,并且该文件包含不同的文件,那将是必要的,还是有其他方法可以做到这一点?
包括文件时我想知道的事情:
假设我想包含一个文件或链接到它。我应该举个例子:
include("../localfile.php");
还是我应该改用
include("http://sameserver.com/but/adirect/linkto/localfile.php");
这个比那个好吗?还是更安全?还是只是个人喜好?
显然,如果您有一个要包含在多个目录中的文件中的文件,并且该文件包含不同的文件,那将是必要的,还是有其他方法可以做到这一点?
读取文件比发出 HTTP 请求并获得响应要快得多。include(a_uri)
如果你能帮助它,永远不要。
如果$_SERVER['DOCUMENT_ROOT']
要计算包含的完整文件路径,请使用。
绝对包含本地文件,因为 php 脚本并不真正知道或关心您是否在本地服务器上包含脚本,因此 url 路径会导致 http 请求,而 http 请求的网络延迟几乎是瓶颈一般来说,渲染任何 html 页面,你拥有的页面越少,你就会越好。
就个人而言,我尽量避免使用include
andrequire
通常,支持require_once
,因为 usingrequire_once
意味着您正在编写可重用的代码,而不是编写包含它时立即执行的代码。拉入类定义,拉入函数库,但尽量避免在包含它时立即执行的代码,因为这会使其更难重用。
如前所述,绝对包含一个本地文件,而不是执行 HTTP 请求(这需要更多时间,不缓存,并且内容在技术上对全世界都是可见的,如果他知道在哪里寻找它)。
还有一个小细节,如果您使用包含文件的完整路径,它甚至会比相对路径更快,特别是如果您使用某种字节码缓存。
如果您的问题是关于保留它,以便在从暂存转移到生产时不必更改十亿条路径,请使用我学到的这个小花絮:
define('BASE_DIR', '/path/to/root/');
然后BASE_DIR
在所有路径引用中使用。当需要移动您的站点时,只需将该定义更改为新路径(应该就/
在那时)。
除了其他人所说的,这些调用会有不同的结果,因为 remove 调用将执行 php output,而不是文件内容。除非您停止 php 处理文件,否则在这种情况下,您将代码暴露给世界,这也不一定是您真正想要的。
始终在本地包含,因为如果您包含远程,则有人可以创建不同的文件并做一些讨厌的事情。另一个你不能用远程包括测试的问题。据我所知,您应该改用 require_once ...