我有多个文件在它们之间共享HTML代码的某些部分,所以为了避免代码重复并让我的生活更轻松,我将这个重复的HTML代码放在一个文件中({{1}然后,每当我需要这段代码时,我都会使用shared-code.php
将它包含在HTML结构中。
但是,我不确定这是否是最好的方法,并且想询问您的意见。
如果这是一种方法,那么请您建议我一种方法来保护这些文件免受直接访问,但仍然可以从require_once
公开访问这些文件。
答案 0 :(得分:0)
请建议我保护这些文件免受直接访问的方法, 但仍然可以从公开访问
require_once
添加变量,如果直接访问它,则无法设置:
<强>共享code.php 强>
<?php
if (!$running) die('No direct access');
//
code continues...
然后在您的主应用程序中设置$running
。
<?php
$running = true;
require_once('shared-code.php');
//
code continues...
像Joomala和其他人这样的项目使用这样的方法,但使用常量。
defined('_JEXEC') or die('Restricted access');
就个人而言,我不喜欢。
正如@JimL所建议的那样,你也可以移动你不希望在webroot之外访问的代码。
因此,如果您构建应用程序,以便拥有public
或html
文件夹,那么您可以设置网络服务器,以便您的webroot或将文件移动到一个级别,例如,放置它们在/var/www
。
你也可以使用带有.htaccess
的{{1}}个文件,但说实话,期待像apache2这样的特定服务器,而不是nginx或者当前周围的大量优质HTTP服务器,或者摆弄你的服务器配置不可移植。
相反,构建应用程序使其具有单一入口点(front controller pattern),然后一切都受到服务器重写的保护。