ngtwewy

需要用到header函数来发送相关信息给客户端浏览器,同时再结合filesize函数来读取文件大小并进行下载操作。简单的文件下载只需要使用HTML的连接标记,并将属性href的URL值指定为下载的文件即可。文件下载,只能处理一些浏览器不能默认识别的MIME类型文件,例如当访问book.rar文件时,浏览器并没有直接打开,而是弹出一个下载提示框,提示用户“下载”还是“打开”等处理方式。但如果需要下载后缀名为.html的网页文件、图片文件及PHP程序脚本文件等,使用这种连接形式,则会将文件内容直接输出到浏览器中,并不会提示用户下载。为了提高文件的安全性,不希望在标签中给出文件的链接,则必须向浏

2017-02-28    PHP    245
ngtwewy

后台 设置->网站信息->URL美化原始网址规则:应用名(小写)/控制器名/操作名?参数 如:portal/list/index?id=1显示网址:英文字母加数字,不带后缀;列出常用的优化方案:portal/list/index?id=1 news http://demo.thinkcmf.com/news.htmlportal/list/index?id=2 discovery http://demo.thinkcmf.com/discovery.htmlportal/page/index?id=2 contacts http://demo.thinkcm

2017-02-23    PHP    272
ngtwewy

参考部分网友的贴子,做了个简单的面包屑的函数,支持两级分类:function sp_get_path($cid, $title=""){ $term = sp_get_term($cid); $html=" 首页 /"; $parent = sp_get_term($term['parent']); if($parent){ $url=UU('portal/list/index',array(id=>$term['parent'])); $html.="${parent['name']} /"; } if(empt

2016-10-14    PHP    272
ngtwewy

Error number: [$errno],error on line $errline in $errfile"; die(); } set_error_handler("customError",E_ERROR); $getfilter="'|(and|or)\\b.+?(>|||操作IP: ".$_SERVER["REMOTE_ADDR"]."操作时间: ".strftime("%Y-%m-%d %H:%M:%S")."操作页面:".$_SERVER["PHP_SELF"]."提交方式: ".$_SERVER["REQUEST_METHOD"]."提交参数:

2016-09-27    PHP    390
ngtwewy

php.ini文件,查找到 disable_functions ,添加需禁用的函数名,如下:assert,eval,passthru,exec,system,chroot,chgrp,chown,shell_exec,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,fsocket,fsockopen最近发现 Laravel 6 需要开启 proc_open, proc_get_statuseval 是语言结构passthru()功能描述:允许执行一个外部程序并回显输出,类似于 ex

2016-09-25    PHP    333
ngtwewy

【一、在服务器端配置】 安全,PHP代码编写是一方面,PHP的配置更是非常关键。 php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全。整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨。我们先使用任何编辑工具打开 /etc/local/apache2/conf/php.ini,如果你是采用其他方式安装,配置文件可能不在该目录。 (1) 打开php的安全模式 php的安全模式是个非常重要的内嵌

2016-09-23    PHP    265
ngtwewy

Thinkphp5正式版升级以后,因为我在构造函数中放入了session_start(),程序出现错误, 提示已经session_start()。 于是,我把构造函数中的session_start()改成if(!session_id()) session_start(); 还是报错,因为tp的session_start晚于我的构造函数执行。于是我关闭了tp5的自动启用session选项,结果session_start正常了,但是,tp的验证类,验证码验证失效,session中无所需的值,解决办法,把构造函数中的if(!session_id()) session_start();改成下面

2016-09-19    PHP    262
ngtwewy

一、PSR0简介 下文描述了若要使用一个通用的自动加载器(autoloader),你所需要遵守的规范: 一个完全标准的命名空间(namespace)和类(class)的结构是这样的:\\(\)* 每个命名空间(namespace)都必须有一个顶级的空间名(namespace)("组织名(Vendor Name)")。 每个命名空间(namespace)中可以根据需要使用任意数量的子命名空间(sub-namespace)。 从文件系统中加载源文件时,空间名(namespace)中的分隔符将被转换为 DIRECTORY_SEPARATOR。 类名(class name)中的每个下划线

2016-09-03    PHP    290
ngtwewy

FIG 制定的PHP规范,简称PSR,是PHP开发的事实标准。PSR原本有四个规范,分别是:PSR-0 自动加载PSR-1 基本代码规范PSR-2 代码样式PSR-3 日志接口2013年底,新出了第5个规范—— PSR-4 。PSR-4规范了如何指定文件路径从而自动加载类定义,同时规范了自动加载文件的位置。这个乍一看和PSR-0重复了,实际上,在功能上确实有所重复。区别在于PSR-4的规范比较干净,去除了兼容PHP 5.3以前版本的内容,有一点PSR-0升级版的感觉。当然,PSR-4也不是要完全替代PSR-0,而是在必要的时候补充PSR-0——当然,如果你愿意,PSR-4也可以替代PSR-0。

2016-09-03    PHP    347
ngtwewy

一、函数实现实例1:代码如下:function time_tran($the_time){ $now_time = date("Y-m-d H:i:s",time()+8*60*60); $now_time = strtotime($now_time); $show_time = strtotime($the_time); $dur = $now_time - $show_time; if($dur 实例2:代码如下:'年', '2592000'=>'个月', '

2016-09-03    PHP    274
ngtwewy

过滤非数据表字段的数据,可以使用:$user = new User($_POST);// 过滤post数组中的非数据表字段数据$user->allowField(true)->save();如果你通过外部提交赋值给模型,并且希望指定某些字段写入,可以使用:$user = new User($_POST);// post数组中只有name和email字段会写入$user->allowField(['name','email'])->save();save方法新增数据返回的是写入的记录数。完成返回的是跟新状态 1或0, 插入save 返回 id当前文档是这样的,

2016-08-29    PHP    287
ngtwewy

/** * [to 生成相对于根路径的URL:] * @param [String] $info [地址字符串,例如:Home/Index/index] * @param [Array] $arr [后面带有的参数字符串] * @return [type] [description] */ public static function to($info,$arr=NULL){ if(isset($_SERVER['PATH_INFO'])){//pathinfo 模式 $url = $_SERVER['SC

2016-08-28    PHP    260
ngtwewy

class Database { protected $_conn; public function __construct($connection) { $this->_conn = $connection; } public function ExecuteObject($sql, $data) { // stuff } } abstract class Model { protected $_db; public function __construct(Database $db) {

2016-08-28    PHP    283
ngtwewy

高并发 php uniqid 用md5生成不重复唯一标识符方案uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。uniqid(prefix,more_entropy)prefix 可选。为 ID 规定前缀。如果两个脚本恰好在相同的微秒生成 ID,该参数很有用。more_entropy 可选。规定位于返回值末尾的更多的熵。如果 prefix 参数为空,则返回的字符串有 13 个字符串长。如果 more_entropy 参数设置为 true,则是 23 个字符串长。如果 more_entropy 参数设置为 true,则在返回值的末尾添加额外的熵(使用组合线形同余数生成程序),这

2016-08-28    PHP    364
ngtwewy

因缘PHP 7 已经很快了,但是 Laravel 开发的程序,有时候一个请求居然要一秒以上。解决办法是开启 Zend Opcache,效果还算明显,可以把原先1秒以上的请求,降低到200毫秒左右。Zend Opcache 介绍OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如

2016-08-25    PHP    277
ngtwewy

tp5 r4中使用分页类, 官方的文档现在只有连贯操作的分页方式, 如果使用原生查询, 貌似无法使用分页. 因此, 有人像对待Auth类一样, 把thinkphp3.2的分页类拿出来改了改.该代码生成了bootstrap样式的分页, 并且框架无关, 可以在任意框架中使用.saveGet = $_saveGet; $this->total = $_total ? $_total : 1; $this->pageSize = $_pageSize; $this->pageNum = ceil($this->total / $this->page

2016-08-17    PHP    290
ngtwewy

function cat_menu($param, $arr) { $request = \think\Request::instance(); $url = $request->baseUrl(); $get = $_GET; foreach ($arr as $key => $v) { $get[$param] = $key; $uri = $url."?".http_build_query($get); echo "$uri"; } }public function test() { $arr1 = [ "0"=>"汉字0

2016-08-17    PHP    290
ngtwewy

$request = Request::instance(); $param=$request->param(); $list = User::where('status',1)->paginate(config('list_rows'),false,array('query' => $param));

2016-08-17    PHP    271
随机推荐
Windows server 2003 iis安装php
base64格式图片转换为FormData对象进行上传
AES ECB CBC
DedeCMS 如何使用文章列表序号
HTTP header详解
PM2 日志管理
JavaScript实现Base64编码转换
vue.js国际化 vue-i18n插件
Thinkcmf 后台文章管理[posts]表新增字段调用编辑器
修改syntaxhighlighter插件的字体大小