readfile与include

时间:2011-02-08 18:36:48

标签: php url include readfile

请考虑以下事项:

我有一个大型项目,包括一个父网站,以及多个“子网站”,他们都共享相同的“核心/基础”内容..(图片,'包括',样式表等)

我的目的是让这些重复文件驻留在1个特定服务器上,并在需要时始终引用相同的路径。

这将导致任何修改后的“核心”文件(图像,“包含”,样式表等)影响所有交叉引用。

最好的方法是什么?


目前,(可能是暂时的)我正在使用以下内容.. <?php readfile('http://remotepath.com/_core/includes/top_nav.php'); ?>

这是一次尝试,最近解决<?php include('/filepath/'); ?>

这带来了一个明显的问题 - 使用以下内容来定位当前页面,将不再有效.. 其次,通过'readfile'检测内容是不安全的?

<?php $url = basename($_SERVER['SCRIPT_FILENAME']); echo $url; ?>

这当然会返回该文件的路径'top_nav.php'

如何使用类似的方法获取网址/网址的值?

任何见解都将受到赞赏!干杯。

2 个答案:

答案 0 :(得分:1)

不要这样做。

将图像,脚本和样式表放在另一台服务器上是很好的。实际上,这实际上是一件好事 - 这意味着您可以同时下载更多文件,这将加快您网站的加载速度。但是,对远程文件执行include调用会非常具有破坏性。这是因为这会使您的服务器向远程服务器发出HTTP请求。当发生这种情况时(并且可能需要一秒或更长时间),您的脚本将完全没有。它会极大地减慢您的网站速度。

一定要在站点之间共享文件。但是,我强烈建议您不要在呈现页面时这样做。您可能希望定期从父服务器将文件下载到子服务器上,然后通常从本地文件系统中包含它们。

注意事项可以通过HTTP呼叫includereadfile并不意味着您应该

答案 1 :(得分:1)

不要远程包含源文件。如果您想在许多不同的服务器上使用相同的PHP库副本,可以使用几种简单的方法。您可以通过定期复制从主服务器到从服务器的任何更改的rsync,或者将您的共享文件放入源代码控制系统(如git),然后在每个服务器上执行“git pull”命令。