php中禁止非法调用和硬路径引入文件的方法

php中禁止非法调用和硬路径引入文件的方法

在php中有一些公共的文件为了方便,我们会做一个公共文件,让不用的文件共同调用。为了禁止公共文件被非常单独调用,
可以在文件上做一个常量,禁止非常调用:
在公共文件上定义一个常量如下

 define(‘custom_string‘,true);

在要调用的文件里也加上一个判断来调用公共文件:

     if (!defined(‘custom_string‘)) {
            exit(‘非法调用‘);
        }

一般地,要调用文件可以用include,include_once,require, require_once去调用了,但是从速度角度考虑,可以用硬路径去引入文件。
在php中用魔法常量__FILE__可以获取文件的路径    ,用dirname(__FILE__);可以得到根目录地址,
如引入header.php文件,可以用下面的方法引入:

require dirname(__FILE__).‘/filename.php‘;

但是有时候经常调用这个dirnam可能会不方便,可以把空上路径转化为一个常量,方便去调用。

php里的substr()函数可以截取出文件的根目录。可以这么把这个路径定义成一个常量:

define(‘SITE_PATH‘,substr(dirname(__FILE__),0,-n));

用负数可以让文件截取的时候从后面开始截取,n为公共文件存放的路径字符数量。比如公共文件存放相对路径为abc/includes/filename.php,则n的abc/includes的字符长度数:12。定义为常量之后可以直接用常量去引入路径:

require SITE_PATH.‘filename.php‘;
时间: 2024-11-10 01:35:15

php中禁止非法调用和硬路径引入文件的方法的相关文章

C#中winform使用相对路径读取文件的方法

这篇文章主要介绍了C#中winform使用相对路径读取文件的方法,实例分析了C#使用相对路径读取文件的技巧与实际应用,需要的朋友可以参考下 本文实例讲述了C#中winform使用相对路径读取文件的方法.分享给大家供大家参考.具体分析如下: 目录结构如下图所示:   方法一:由于生成的exe文件在bin\debug目录下,可以使用向上查找目录的方式获取要读取的xml文件 复制代码代码如下: string haarXmlPath = @"../../haarcascade_frontalface_a

iOS APP中第三方APP调用自己的APP,打开文件

根据需求需要在项目中要打开word.pdf.excel等文件,在info.plist文件中添加 <key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeName</key> <string></string> <key>LSItemContentTypes</key> <array> <strin

android studio中导入第三方jar包和第三方库文件的方法

一.导入第三方jar包的方法 其实较为简单,以下步骤: 1>在工程的libs下面放置需要导入的jar包 2>在导入的jar包右键,选择"add as library" 3>这时候就能够在app下面的build.gradle中发现多了如下说明:"compile XXXX",说明导入jar文件成功了. 二.导入第三方类库文件 相对而言,其实就是将之前的Eclipse的project或者module转化成android studio下的可执行的proje

java中从含反斜杠路径截取文件名的方法

例如:获取到的文件路径为C:\Documents and Settings\Leeo\My Documents\logo.gif现在想要取得图片的名称logo.gif,我们知道反斜杠“\”是转义字符,所以不能直接String temp[] = filePath.split("\");//filePath的值就是上面的文件路径 来分割文件路径,而应该这样写/**java中\\表示一个\,而regex中\\也表示\,*所以当\\\\解析成regex的时候为\\**/String temp[

python里读取文件路径上一级路径及文件的方法

这个有时隔时间久了自己都记不清了具体的语句,现在总结一下. 一.获取当前文件路径 二.获取上一级文件路径 这里可以想象出获取与自己同级文件的路径,这么写: 即先获取上级目录,然后通过join函数来把同级的目录test拼进来. 三.获取当前路径下的所有文件名 得到的是一个列表的数据,是当前目录下的所有文件夹及文件的名称. 四.检查是否是文件及文件是否存在 先介绍这么多,比较简单总的是为了可以加深自己的记忆.还有删除目录.获取当前环境.分离文件.分离扩展名等,这里列举的是比较常用的. 原文地址:ht

ckeditor中 config.js等通过ckeditor.js引入文件手动修改方法

因为除了ckeditor.js之外的引用文件是通过ckeditor.js自动添加<script>或<link>标签实现文件的引入,引入的根目录是展示页面的地址.有时需要手动修改通过ckeditor.js引入的文件.这是需要在引入ckeditor.js之前定义window.CKEDITOR_BASEPATH = '../../static'(目录自己修改),编辑器将强制修改引用地址. ckeditor.js的这一部分源码是处理定义地址的: basePath: function() {

idea 下获取路径下文件的方法

想读取resouce/temp下的test.txt文件.方式一:File sourceFile = ResourceUtils.getFile("classpath:temp/test.txt"); //这种方法在linux下无法工作 方式二:Resource resource = new ClassPathResource("temp/test.txt");File sourceFile = resource.getFile(); 原文地址:https://www

JavaScript中获取当前项目的绝对路径

最近在做JavaWeb项目相关的东西,几乎每天都遇到很多问题,主要是因为自己对JavaWeb方面的知识不是很清楚,尽量把自己在项目中遇到的问题都记录下来,方便以后查阅. 在我们的项目中有这样的需要,当在页面停留时间过长时,自动调回主页面first.jsp,所以我就写了个load.js代码文件,然后在每个jsp页面上都引用它,这样就出现了问题,因为每个页面不都是在WebRoot的根目录下的,有可能是在其子目录下,如下图所示: 所以对于每个jsp页面所跳转回主页面first.jsp的路径就不相同,所

PHP中引入文件的四种方式及区别

文件加载语句:include,require,include_once,require_once include,require: require函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份.include函数一般放在流程控制的处理部分中.PHP程序网页在读到 include的文件时,才将它读进来.这种方式,可以把程序执行时的流程简单化. 1 include有返回值,而require没有. "requi