PHP 碎片
1. $_SERVER['REMOTE_ADDR'] cannot be modified by the user or via HTTP so you CAN trust it. -- 用这个可以有效防止别人跨站提交。
2. 自己写的验证时间格式是否正式的函数:
function checktime($time){
$time = trim($time);
if( empty($time) ){
return false;
}
$regStr = "/^20\d{2}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}$/i";
if( !preg_match($regStr,$time) ){
return false;
}
$arr = explode(' ',$time);
$dateStr = $arr[0];
$timeStr = $arr[1];
$dateArr = explode('-',$dateStr);
if( !checkdate($dateArr[1],$dateArr[2],$dateArr[0]) ){
return false;
}
$timeArr = explode(':',$timeStr);
$hour = intval($timeArr[0]);
$minute = intval($timeArr[1]);
$second = intval($timeArr[2]);
if( $hour>24 || $minute>60 || $second>60 ){
return false;
}
return true;
}
3.非常好用的调试方法:debug_print_backtrace,可以打印出一个页面的调用过程 , 从哪儿来到哪儿去一目了然。但这个方法是直接输出到页面的,虽然输出页面的东西可以用缓存得到,但也不方便。debug_backtrace,把结果保存到数组,方便很多。使用 debug_print_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); 简化输出。
4.
$_POST = array(
'test' => 1
); $_REQUEST = $_POST;
$_REQUEST['test'] = 2; print_r($_REQUEST);
print_r($_POST); /*
分别输出
array(
'test' => 2
);
array(
'test' => 1
);
*/
$_POST = array(
'test' => 1
); $_REQUEST = &$_POST;
$_REQUEST['test'] = 2; print_r($_REQUEST);
print_r($_POST); /*
分别输出
array(
'test' => 2
);
array(
'test' => 2
);
*/
5. 当循环(for)里面有 switch 而我又想用 continue 跳到下一个循环,谁知却是跳出 switch 。
while(){
switch(){
case 1:
xxxx;
continue; //没有跳出循环,而是跳出了switch
}
}
6.curl 的函数
function curl_get($url, $data=array()){
$ch = curl_init();
$query = http_build_query($data);
if(''!=$query) $url .= '?' . $query;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function curl_post($url, $post_data=array()){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
PHP 碎片的更多相关文章
- 扑面而来的碎片--图片3D炸裂效果初体验
之前逛园子的时候看到 ChokCoco 的爆炸效果作品:[BOOM]一款有趣的Javascript动画效果 (大神英文有没有拼错呀←.←),觉得蛮有意思的,效果如下: 不过觉得这个爆炸效果还是偏软了一 ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- Android 横竖屏+碎片的应用
最终效果展示: 项目介绍: 通过碎片的方式显示标题列表和内容,其中也牵涉到横竖屏的知识 项目代码下载:http://files.cnblogs.com/files/Laopengblog/%E7%A2 ...
- 关闭电脑SSD的磁盘碎片整理
小白往往会把机械硬盘时代的习惯带进固态硬盘时代,比如碎片整理.机械硬盘时代砖家最喜欢告诉小白:“系统慢了吧?赶紧碎片整理撒.”小白屁颠屁颠地整理去了.殊不知碎片整理对于SSD来说完全就是种折磨.这种“ ...
- PhotoShop算法原理解析系列 - 像素化---》碎片。
接着上一篇文章的热度,继续讲讲一些稍微简单的算法吧. 本文来讲讲碎片算法,先贴几个效果图吧: 这是个破坏性的滤镜,拿美女来说事是因为搞图像的人90%是男人,色色的男人. 关于碎 ...
- 【笔记】科普createDocumentFragment() 创建文档碎片节点
上一篇文章说到了动态添加文本节点的方法那如果我们要添加多个文本节点或者元素节点呢? 大家可能会想到用循环然后逐个逐个添加 但是别忘了js 还提供了创建一个文本碎片的方法 createDocumentF ...
- xfs磁盘(文件)碎片查看和整理
网上有些帖子说XFS不用做碎片整理,其实是错误的.XFS用延迟写入等技术确实可以减少碎片的出现,但是如果服务器用了几年,并且文件操作比较频繁,还是会出现碎片的,应该整理.注意:在Debian中XFS相 ...
- Fragment碎片
布局文件中添加碎片 1.在onCteate()方法中调用inflater.inflate()加载Fragment布局 2.在xml的<fragment>中需要显示指明碎片名称(androi ...
- javascript创建文档碎片节点
在<javascript高级程序设计>一书的6.3.5:创建和操作节点一节中,介绍了几种动态创建html节点的方法,其中有以下几种常见方法: · crateAttribute(name): ...
- Oracle索引碎片检查及定期重建常用表的索引
背景说明: 今天查阅书籍时,偶然间发现“在对某个索引行执行删除操作时,只是为该行增加了一个删除标记,这个索引行并不会释放它的存储空间,Insert产生的新的索引行也不能被插入到该位置.索引列的修改过程 ...
随机推荐
- 深入理解Java内存模型(六)——final
与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问.对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象 ...
- 如何配置LCD背光和LED,调试方法
LCD背光和LED配置文件 alps/custom/<proj name>lk/cust_leds.c alps/custom/<proj name>/kernel/leds/ ...
- hdu1052(田忌赛马 贪心)
好坑的一道题,不过确实是贪心的一道好题,想了好久一直无法解决平局的情况. 参考了别人的思路,然后结合了自己的想法,总算是想出来了. 这题有些步骤是必须要执行的,有四个步骤 一.当期状态田忌的最慢的马 ...
- HDU 1080 Human Gene Functions
最长公共子序列的变形 题目大意:给出两个基因序列,求这两个序列的最大相似度. 题目中的表格给出了两两脱氧核苷酸的相似度. 状态转移方程为: dp[i][j] = max(dp[i-1][j]+Simi ...
- 【第八篇】mvc razor视图配置404 500页面
记住是最外层的这个Web.config 在 <system.web> </system.web>节点里面配置 <customErrors defaultRedirect ...
- UVA 11383 Golden Tiger Claw(最佳二分图完美匹配)
题意:在一个N*N的方格中,各有一个整数w(i,j),现在要求给每行构造row(i),给每列构造col(j),使得任意w(i,j)<=row(i)+col(j),输出row(i)与col(j)之 ...
- Android Terminal telnet windows
/******************************************************************************************** * Andr ...
- Struts2的crud
struts2的crud引出的问题: 1.当Action里面有其他类的实例引用属性时,当要用请求参数为该对象的属性赋值时,如何将其压入栈顶. 2.当有的操作(list)不需要创建该属性的实例对象时,或 ...
- FPGA代码设计规范整理
1.设计中的FIFO.状态机接口需要有异常恢复状态和状态上报机制,格雷码电路防止被综合电路优化掉. a)自行设计的格雷码FIFO(一般用于连续数据流跨时钟域)用Synplify综合时,为了防止被优化需 ...
- RequireJS进阶(二) 转
这一篇来认识下打包工具的paths参数,在入门一中就介绍了require.config方法的paths参数.用来配置jquery模块的文件名(jQuery作为AMD模块时id为“jquery”,但文件 ...