关于用ini_set修改配置项的问题
首先我需要用ini_set('allow_url_include', "1");来修改下配置项来使得页面可以允许url包含,但是我这么写了之后还是没起作用,请问这个是为什么?
再就是我开启这个实在是我想不到好的方法了,只能暂时开启下回头然后再考虑好的方法,那我想问下开启这一项会对安全性有造成影响吗?或者这个选项一般是开启好些还是最好不要开启??
回复讨论(解决方案)
allow_url_include 这个设置要求 allow_url_fopen 也要开启。
allow_url_include 不能在代码中设置。只能在 php.ini 中设置
allow_url_include 的本意是通过统一资源定位来实现代码资源的共享,有如 html 的 src=xxx.js
但是对方服务器并不知道 http://host/code.php 是源于 include 的,所以美好愿望并不能实现
这能做到 include 非 php 文件中的 php 代码
如果只是为了获取对方程序的执行结果,那么 file_get_contents 也就可以了
allow_url_include 这个设置要求 allow_url_fopen 也要开启。
那个我是开着的,但是还是不行
allow_url_include 不能在代码中设置。只能在 php.ini 中设置
allow_url_include 的本意是通过统一资源定位来实现代码资源的共享,有如 html 的 src=xxx.js
但是对方服务器并不知道 http://host/code.php 是源于 include 的,所以美好愿望并不能实现
这能做到 include 非 php 文件中的 php 代码
如果只是为了获取对方程序的执行结果,那么 file_get_contents 也就可以了
嗯,一般情况下那个是可以的,我开始也尝试了那种方法,但是还是不行,没有达到我想要的效果。现在我解决了,但是这个方法比较那个什么,我也不知道怎么讲,我把我想要的效果敲在楼下,你帮我看看我的实现方法或者你帮我看看有什么好的方法能够实现
那首先,我要实现一套MVC模式的系统,然后有一个入口文件index.php,一个主类文件Myth.class,一个模板编译类文件,MythTemplate.class,然后我的控制器文件是一个类,拿默认控制器来说是这样的:
class IndexAction extnnds MythTemplate {
public function index() {
$this->assign('var1', 'value1');
$_obj = Myth::Action('public/header', $this);
}
}
那个调用是调用模板类的方法想模板中注册变量。。然后模板编译之后生成一个.php文件,那我直接include找个php文件这样的话就可以访问,这样是没问题的。
那问题是什么呢?就是因为一般网页中头部(header)和底部(footer)是公共的所以需要单独拿出来然后在index.html的模板中引入header.html和footer.html,那我就在模板中子定义一个标签来实现包含这个header.html的文件,那因为我的页面的访问地址形式是这样的:
www.fantan.com/index/index.html
这里是访问首页,那在首页中要包含header.html并且通过header.html的控制器:
class PublicAction extends MythTemplate {
public function header() {
$this->assign('var2', 'value2');
}
}
来注册header.html模板中的变量的话就需要包含这个页面,这样的话就出现了我讲的那个问题,因为如果通过改变php.ini文件的那个选项的话就其实就可以实现了,但是我总觉得这种不太好,所以我就没用了后面,那我现在使用的方法是在Myth类中增加一个静态的方法:
class Myth{
public static functin Action('public/header', $_that) {
$_obj = new public();
$_obj->_data = &$_that;
}
}
这里$_data数组是模板类中保存模板变量的数组,这样把两个不同对象中的$_data数组通过关联达到数据一致的效果,但是这个访问唯一不好的就是这里:
$_obj = Myth::Action('public/header', $this);
就是你要调用必须显式的传递$this,我觉得这里可以不用传的,但是我又想不到好点的方法。。。。
不知道说清楚没,但是现在我的问题已经不是开始的那个,变成了刚刚提到的那个就是:不显式的传递$this,但是可以在Action方法中获取调用这个方法的方法所在类的对象怎么获取?
allow_url_include 不能在代码中设置。只能在 php.ini 中设置
allow_url_include 的本意是通过统一资源定位来实现代码资源的共享,有如 html 的 src=xxx.js
但是对方服务器并不知道 http://host/code.php 是源于 include 的,所以美好愿望并不能实现
这能做到 include 非 php 文件中的 php 代码
如果只是为了获取对方程序的执行结果,那么 file_get_contents 也就可以了

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

在Facebook在2012年通过Facebook备受瞩目的收购之后,Instagram采用了两套API供第三方使用。这些是Instagram Graph API和Instagram Basic Display API。作为开发人员建立一个需要信息的应用程序

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长
