文章目录
1.尽量静态化:
2.echo的效率高于print,因为echo没有返回值,print返回一个整型;
3.在循环之前设置循环的最大次数,而非在在循环中;
4.销毁变量去释放内存,特别是大的数组;
5.避免使用像__get, __set, __autoload等魔术方法;
6.requiere_once()比较耗资源;
7.在includes和requires中使用绝对路径。
8.如果你需要得到脚本执行时的时间,$_SERVER['REQUSET_TIME']优于time();
9...
Php, PHP代码高效率之道, PHP高效率阅读全文
在Yii框架中,为了防止csrf攻击,封装了CSRF令牌验证。
只需要在主配置文件中进行简单的配置,就可以实现CSRF的验证,但是默认的开启是整站开启,当有时候需要某些地方不要经过拦截时我们就可以用如下方式,此说明只针对Yii1.0有效。
要实现此方法需要要重写CHttpRequest类。
1. 在框架的framework/global/extensions/http/ 目录下新建一个WFilterHttpRequest类 继承创建一个类,继承于CHttpRequest,里面加入代码如下
/**
*...
Php, Yii CSRF局部关闭拦截, yii1.1阅读全文
HTML
//页面Js代码
//
{{item.title}}
{{/each}}
// ]]>
JS代码
$('#previewPic').on('click', function () {
var YII_CSRF_TOKEN =$('#YII_CSRF_TOKEN').val();
$.post('index.php?r=shop/previewBanners', {YII_CSRF_TOKEN : YII_CSRF_TOKEN }, function(ret) {
if(ret.code == 200){
alert('发布成功!');
return false;
}
initData = ret.data;
var ht...
Javascritp, Php, swiper, 幻灯片, 首页轮播阅读全文
Html端代码
链接地址:
删除
编辑
js端代码
this.evenDrag = function() {
// 重新排序
var sort = 0;
var menuSortArr = new Object();
var i = 0;
$(".bannerSort").each(function(){
var id = $(this).attr("id");
sort ++;
menuSortArr[i] = {id:id, sort:sort};
i ++ ;
var subSort = 0;
$(this).find(".sonMenu").each(function(){
var id = $(this).attr("id");
subSort ++;
menuSortArr[i] = {...
jquery drag, 拖动排序阅读全文
CHttpException
无法解析请求 "error/system"。
yii此错误 请求400的解决办法
第一种解决办法是关闭Csrf
public function init(){
$this->enableCsrfValidation = false;
}
第二种解决办法是在form表单中加入隐藏域
<input name="_csrf" type="hidden" id="_csrf" value="<?php Yii::$app->request->csrfToken ?>">
第三种解决办法是在AJAX中加入_csrf字段
var csrfToken = $('meta[n...
Php, yii2阅读全文
在CI 3.0中有一个csrf(Cross Site Request Forgery) protection的功能
开启了csrf后 由于出于安全考虑 ci3中用ajax post 提交 必须要用到toke 令牌
如果这个扩展打开了的话
POST ajax提交就会报错 我用的nginx 报的403
The action you have requested is not allowed.
大意是
你所要求的行动是不允许的。
会无法执行
这时候要在表单传送的数值中加入一个token的值
才能正常使用表单功能
可以在application/config/config.php中...
ajax, CI, csrfci, Php, post报错阅读全文
由于在YII中用render来渲染页面很好用,在接触到ci后发现没有页面渲染和layout布局 然后就自己写了个用于渲染和布局的方法
没有布局太蛋疼,使用布局可以大大提高效率,如果每个文件都手工添加有太浪费时间和效率,回顾以前的项目记得曾经做过Yii的layout的设置,然后就搬到了CI上,具体见下面
首先定义全局的Controller,在项目的applcation/core目录下定义自己的Controller,不过要使用MY_开头也就是必须命名为:MY_Controller当...
CI, CodeIgniter阅读全文
推荐下面两个接口,写的两个小函数
推荐下面两个接口,写的两个小函数
新浪ip库接口,经测试速度快,稳定
// 根据IP查询用户地理位置,新浪API
function getCity($ip)
{
if(!empty($ip)){
$url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip;
$ip = json_decode(file_get_contents($url));
if ((string)$ip->ret == 0) {
return false;
...
ip地理位置API, Php阅读全文
简单的写了两个小函数来实现 数组转对象 对象转数组
/**
* @param array $arr 传人一个数组.
* @return object|void 返回一个对象.
*/
function arrayToObject($arr)
{
if (gettype($arr) != 'array') return;
foreach ($arr as $k => $v) {
if (gettype($v) == 'array' || getType($v) == 'object')
$arr[$k] = (object)arrayToObject($v);
}
return (object)$arr;
}
...
Php, 对象转数组阅读全文
文章目录
特性
安装
性能
orkerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、手游服务端、网络游戏服务器、聊天室服务器、硬件通讯服务器、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。基于workerman开发者可以更专注于业务逻辑开发,不必再为PHP Socket底层开发而烦恼。
wor...
阅读全文
文章目录
1. Nginx版本
1. Nginx版本
root@root:~$ nginx -v
nginx version: nginx/1.9.40
2.增加Nginx 虚拟主机
主要有这几步 配置 /usr/local/nginx/conf/nginx.conf (具体路径按照自己安装的路径,配置文件见下)
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
...
阅读全文