摘要:早期,一个web程序通过cgi方式提供数据处理,编写cgi程序可以用不同的语言。 这个过程是,我们生成一个服务端可执行程序,处理 web server 传过来的请求,(设置header头)然后返回数据。 PHP1是典型的cgi程序(https://github.com/farwish/php1),m
阅读全文
摘要:这篇内容将对下列操作进行示范: Insert、Select、Update、Calculation、Transaction、models advanced、dev-tools、cookies [ Insert ] (1) // 模型内操作,data是['字段'=>'值']的一维数组。 $bool =
阅读全文
摘要:升级主要有 php7, phalcon, extension 这三个方面工作。 【php7】 我选择从 git 中源码包安装,下面是主要安装步骤: git clone -b php-7.0.14 https://github.com/php/php-src.git cd php-src/ ./bui
阅读全文
摘要:一般使用 Xhprof ,按文档操作可以快速上手,文件头开启 Xhprof,应用结束处得到访问的url查看。 这种使用方式可以快速看到效果,同时也有一些不好的地方: 一是不利于重复利用写好的示例代码;二是你需要改不同的Web应用。 怎样做到不在现有应用中加入无关紧要的代码,又能达到目的? php提供
阅读全文
摘要:在PHP的OOP中我们有常见两种方法调用,对象调用和静态调用。 下面是一个简单的测试来比较它们的细微差异。 /** * 对象初始化 -> 调用;objectCall.php * * 测试调用50W次. * * @farwish */ class Test { public $a; public fu
阅读全文
摘要:composer.json 文件可以用命令 composer init 创建,命令是交互式的。 也可以直接编辑一个 json 文件,如下: repositories 中 url 使用中国全量镜像地址. 要引入依赖包,可以直接加进去,也可以用命令行,composer require "predis/p
阅读全文
摘要:之所以发现这个坑,源起项目中的支付宝页面跳转同步通知页return_url中的$verify_result始终返回false。 $alipayNotify = new Alipaynotify($alipay_config); //支付宝通知处理类 $verify_result = $alipayN
阅读全文
摘要:/** * PHPExcel数据导入方法 * Document:https://github.com/PHPOffice/PHPExcel/blob/develop/Documentation/markdown/Overview/07-Accessing-Cells.md * @param stri
阅读全文
摘要:/*| | PHP定时任务| @author farwish| */ignore_user_abort(true); //客户端断开时忽略脚本中止(允许脚本一直执行) set_time_limit(0); //设置脚本最长执行时间,0不限制 do{ $fp = fopen('auto.txt', '
阅读全文
摘要:1. 修改PHP配置文件中的三项:vim /usr/local/php/etc/php.ini (1)post_max_size = 50M #PHP可接受的最大POST数据 (2)upload_max_filesize = 50M #文件上传允许的最大值 (3)max_execution_time
阅读全文
摘要:php对json字符串解码使用json_decode()函数,第一个参数传字符串,第二个参数若为true,返回array;若为false,返回object。如果返回NULL,说明报错,输出json_last_error(),得到的整数值对应错误提示。如图: json_last_error()比较常见
阅读全文
摘要:中间关联表:这里的中间表只存表1的主键和表2的主键,即多对多的形式。 (执行数据添加和删除为框架内部方法,不属于思路部分) /*| |方法一:先全部删除旧数据,后添加新数据| | */ $res = $this->classes->classEdit($id, $data); //修改主表数据 if
阅读全文
摘要:PHP服务端session以文件的方式存储,当用户访问量过大时,session文件会非常多,而且当横向增加服务器后,session文件并不能同步,面临会话保持的问题。 有以下两种解决方案: 1. 拿出单独的一台服务器使用NFS或Samba文件共享方式,共享session文件,可以解决负载均衡时会话不
阅读全文
摘要:/* | |一.动态访问命名空间的元素 | */ namespace me\poet; function test() { echo '1111'; } $fun = 'test';//不能这么用,最后$fun()无法动态调用到test():Fatal error: Call to undefine
阅读全文
摘要:一. PHP的命名空间主要解决三种冲突的问题:常量,函数,类 通俗理解:namespace就相当于是用来建一个目录,将namespace下面的代码放在该目录里面,与外面的区分开来。 /* | |namespace示例 | | */ namespace myself; function var_dum
阅读全文
摘要:1. 使用JS让按钮在点击一次后禁用(disable)。=> 防止多次点击发生,实现方式较简单。 缺点:若客户端禁止JavaScript脚本,则失效。 2. 在提交成功后执行页面重定向(redirect)。=> 转到提交成功信息页面。 特点:避免F5重复提交,消除浏览器前进和后退按导致的同样问题。
阅读全文
摘要:一. PHP的session原理: 1.开启session_start(),服务器端产生session文件,将相关信息存储到这个文件中,文件以"sess_"为前缀,连接session_id()值来命名(内容是由特定算法生成的用户的明文信息,大型项目则须进行加密处理),同时将sessionid保留到客
阅读全文
摘要:RBAC(Role Based Access Control),意为基于角色的访问控制,这里用户不再拥有单独权限,而是与角色相关联,通过赋予角色权限,那么该用户也就拥有了这个角色的权限; 这里的角色可以也理解为用户组。 权限控制位置:在公共的控制器类的构造方法内,这样子类均需进行权限验证; 登录注册
阅读全文
摘要:/*| | 方案1:如果静态文件存在,且生成时间30秒内,直接返回静态页面(有时间延迟) <www.farwish.com>| */header('content-type:text/html;charset=utf-8'); $id = $_GET['id'] ? intval($_GET['id
阅读全文
摘要:/* | |array_map();将回调函数作用到给定数组的单元上 |array_column();快速实现:将二维数组转为一维数组 | */ array array_column ( array $input , mixed $column_key [, mixed $index_key ] )
阅读全文