更好/更安全地使用php的方法包括?
这对我来说很有效,但有没有更好/更安全的方法来使用include:更好/更安全地使用php的方法包括?,php,security,include,Php,Security,Include,这对我来说很有效,但有没有更好/更安全的方法来使用include: <?php include "http://www.myserver.com/somefile.php" ; ?> 我试过: <?php include "somefile.php" ; ?> 但它没有起作用 我使用这种格式,因此可以使用根级别的相对路径。它比路径中的一堆…\ \更容易阅读 include $_SERVER["DOCUMENT_ROOT"] . '/root folder/fi
<?php include "http://www.myserver.com/somefile.php" ; ?>
我试过:
<?php include "somefile.php" ; ?>
但它没有起作用 我使用这种格式,因此可以使用根级别的相对路径。它比路径中的一堆…\ \更容易阅读
include $_SERVER["DOCUMENT_ROOT"] . '/root folder/file.php'
这里有几个问题:
- 如果您想要包含一个PHP源文件进行处理,那么包含一个URL将不起作用,除非服务器不处理PHP文件并逐字返回
- 包括URL是不安全的;这是您的服务器,可能不太严重,但它的性能会受到影响,因为直接从磁盘读取文件的速度更快
- 如果包含的文件没有PHP代码,请使用
或readfile
file\u get\u contents
somefile.php
不在“工作目录”(可能是包含该include的文件目录)中
执行以下操作之一:
- 使用完整路径:
(在类Unix系统上)/path/to/somefile.php
- 使用相对路径:
。/relative/path/to/somefile.php
- 为了获得最佳的可移植性和维护性,我会在基本路径中定义某种常量,并在查找文件时使用它。这样,如果文件系统中的某些内容发生了更改,您只需更改一个变量即可使所有内容正常工作
例如:
define('INCLUDE_DIR','/www/whatever/');
include(INCLUDE_DIR . 'somefile.php');
我用这个:
$filename = "file.php";
if (file_exists($filename)) {
include($filename);
}
我强烈建议设置include_路径,然后使用PHP的自动加载: 我的自动加载器如下所示:
function __autoload( $class_name ) {
$fullclasspath="";
// get separated directories
$pathchunks=explode("_",$class_name);
//re-build path without last item
$count = count( $pathchunks ) -1;
for($i=0;$i<$count;$i++) {
$fullclasspath.=$pathchunks[$i].'/';
}
$last = count( $pathchunks ) - 1;
$path_to_file = $fullclasspath.$pathchunks[$last].'.php';
if ( file_exists( $path_to_file ) ) {
require_once $path_to_file;
}
}
function\uuu自动加载($class\u name){
$fullclasspath=“”;
//获取分离的目录
$pathchunks=explode(“\u”,$class\u name);
//重新生成不带最后一项的路径
$count=count($pathchunks)-1;
对于($i=0;$i)您能告诉use there您尝试包含的文件是相对于正在执行的文件的吗?请确保您包含的文件与您包含的文件(在Web服务器上)位于同一目录中。如果不是,您可以使用相对路径。您是否尝试了前导/如果它位于服务器的根目录中?