我应该如何存储要多次包含的 PHP 代码块?
How should I store PHP blocks of code to be included multiple times?
我有一个 PHP 代码块,我在我的网站上以多种形式使用它。相反,我想要一个单独的文件,然后我多次包含该文件。我不希望它可以通过网站 URL 中的路径自行访问。我正在考虑创建一个单独的文件夹并通过 htaccess 从它重定向到 homesite。还有其他解决方案吗?这里的最佳做法是什么?
您可以使用函数和共享库。
file1.php
<?php
require_once './myLib.php';
echo myFunc();
myLib.php
function myFunc() {
return "Foo";
}
file1.php
的预期输出
Foo
有几种方法可以确保无法访问此库。
最简单的方法就是将它存储在您的 webroot 之外(可能在 /var/www/script
中)并使用 ../script/myLib.php
或 /var/www/script/myLib.php
导入它
如果您想将它放在您的 webroot 中,您可以使用 .htaccess 拒绝访问它
这个问题可以帮助你 How to deny access to a file in .htaccess
最后,您可以简单地将它放在您的 webroot 中,让脚本检查它是否被直接使用以下行访问
if(__FILE__ === $_SERVER['SCRIPT_FILENAME']) {
header('location: /'); // if the script is accessed directly redirect the user
die(); // ALWAYS DIE AFTER A REDIRECT
}
我有一个 PHP 代码块,我在我的网站上以多种形式使用它。相反,我想要一个单独的文件,然后我多次包含该文件。我不希望它可以通过网站 URL 中的路径自行访问。我正在考虑创建一个单独的文件夹并通过 htaccess 从它重定向到 homesite。还有其他解决方案吗?这里的最佳做法是什么?
您可以使用函数和共享库。
file1.php
<?php
require_once './myLib.php';
echo myFunc();
myLib.php
function myFunc() {
return "Foo";
}
file1.php
的预期输出Foo
有几种方法可以确保无法访问此库。
最简单的方法就是将它存储在您的 webroot 之外(可能在 /var/www/script
中)并使用 ../script/myLib.php
或 /var/www/script/myLib.php
如果您想将它放在您的 webroot 中,您可以使用 .htaccess 拒绝访问它 这个问题可以帮助你 How to deny access to a file in .htaccess
最后,您可以简单地将它放在您的 webroot 中,让脚本检查它是否被直接使用以下行访问
if(__FILE__ === $_SERVER['SCRIPT_FILENAME']) {
header('location: /'); // if the script is accessed directly redirect the user
die(); // ALWAYS DIE AFTER A REDIRECT
}