php碎片
1.flock
LOCK_EX 独占锁定
LOCK_SH 共享锁定
LOCK_UN 解除锁定
LOCK_NB 锁定但不堵塞进程,直接返回false
2. fseek
SEEK_CUR
SEEK_END
SEEK_SET
3、
function search($key,&$result){
$result=$key.'此种方法值得学习';
return true;
} if(search('123',$result)){
echo $result;
}
/*
* ① md5_file()要比get_headers()快很多
* ② global和$GLOBALS只能使用,但并不会改变原来的赋值
* ③ 递归思想的用处
* ④ register_shutdown_function()来模拟析构函数
* ⑤ set_error_handler() set_exception_handler() 接管的函数或者类都要加载错误出现之前
* ⑥ ini_set('display_errors','Off')的权限要大于error_reporting();
* ⑦ 代码技巧:先定义返回结果的格式,失败直接返回
* ⑧ sprintf: %u=>无符号十进制
%b=>二进制
%d=>有符号的十进制整数
%f=>浮点数
%s=>字符串
%x=>小写字母的十六进制
%X=>大写字母的十六进制
原理就是如何认为计算机里边的二进制数了,会把参数当作十进制
* 1)正负号,正号不用写,当不满足最小宽度的时候,从前边补0还是从后边补0
* 2)填充字元 0表示空格填充0 默认值是空格,表示空格就放着
* 3)总宽度(包括小数点),为最小宽度
* 4)(.)精确度
* 随心所欲的调用参数 “%1\$.2f %1\$f”(%1\$u 第一个参数,无符号十进制正数)
* ⑨ ip2long()不要忘了使用%u
* ⑩ substr_count($string,$serach[,$start,$length]) 检测一个字符串在另一个字符串中出现的次数
* 11) 用isset来替换array_key_exists
* 为初始化的变量、0、空、null、空数组、false、[没有任何属性的object]都为empty
* 重点 var = null 跟empty唯一不同的就是当变量为定义时,会抛出一个Notice
* 12) 如果php.int中的register_globals=On的话,所有的$_GET $_POST $_COOKIE $_SESSION 都将别注册成全局变量,通过$GLOBALS中,不建议开启
* 13) get_magic_quotes_runtime() 和 get_magic_quotes_gpc()
* 14) final关键字:如果类声明为final,则此类不允许继承,如果类中的方法声明为final,则此方法不允许覆盖
* 15) Exception
* class Exception{
* protected $message;
* protected $code=0;
* protected $file;
* protected $line;
*
* public function __construct($message=null,$code=0);
* final function getMessage();
* final function getFile();
* final function getLine();
* final function getCode();
* final function getTrace();
* final function getTraceAsArray();
*
* public function __toString();
* }
* 16) 静态变量只存在函数作用域内,也就是说,静态变量只存活在栈中,一般的函数内部变量在函数结束后就会释放,比如局部变量,但是
* 静态变量不会,也就是说下次在调用的时候,这个变量会保存起来
* 静态属性不属于那个实例,对任何实例都有效
*
* 17) htmlspecialchars($string[,ENT_COMPAT|ENT_QUOTES|ENTNOQUOTES]) 【这些都是针对单双引号的】
* ENT_COMPAT 尽编码双引号
* ENT_QUOTES 编码单双引号
* ENT_NOQUOTES 都不编码
*
* 18) pathinfo($fine[,option]) 返回文件路径信息
* PATHINFO_DIRNAME
* PATHINFO_BASENAME
* PATHINFO_EXTENSION
*
* 19) mb_strlen($str[,$encode]); 最好把encode加上
*
* 20) strtr($str,from,to) 或者 strtr($str,$array); 可以做个小的关键词库
*
* 21) explode('_',$str.2) 规定数组的最大长度
*
* 22) call_user_func_array(array('classname','method'),array('参数一','参数二',...))
* classname
* 可以为类名,此时就不再调用初始化函数
* 可以为类的实例化,$test=new test(); array(&$test,methodName),调用初始化函数
* 参数数组是一个索引数组,不会去按关联数组去匹配,不要太天真哦~~~
*
* 23)正则 (?=exp) 顺序肯定 (?<=exp) 逆序肯定 (?!exp) 顺序否定 (?<!exp) 逆序否定
* 匹配ABBABB的正则 [\d]+ ((?<n1>\d)(?<n2>[^\k<n1>])\k<n2>)\1 (如何不用分组名去捕获,我还是没写出来)
*/
4、
<?php
/* class Exception{
protected $message;
protected $code;
protected $file;
protected $line; function __construct($message[,$code]);
final function getMessage();
final function getCode();
final function getFile();
final function getLine();
final function getTrace();
final function getTraceAsArray();
public function __toString();
final private __clone();
}*/
// PDO 中包括三个预定义的类
// ① PDO
// exec($sql)
// query($sql)
// setAttribute(PDO::ERRMODE,PDO::ERRMODE_EXCEPTION);
// lastInsertId()
// prepare()
// beginTransaction()
// commit()
// rollBack()
// ② PDOStatment
// rowCount()
// fetch(PDO::FETCH_ASSOC|PDO::FETCH_BOTH|PDO::OBJ|PDO::NUM)
// fetchAll()
// bindParam()
// execute() // ③ PDOException
try{
$dsn='mysql:host=localhost;dbname=test';
$pdo=new PDO($dsn,'root','');
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
// $sql='insert article values("",1,2)';
// 执行一条sql,并返回影响的行数
// echo $pdo->exec('SET NAMES UTF8');
// query()执行一个sql,并返回结果集
// $query=$pdo->query($sql);
// rowCount() 返回sql执行后影响的行数
// $affected_rows=$query->rowCount();
// echo $last_id=$pdo->lastInsertId();
// $query=$pdo->query('select * from friends LIMIT 10');
// $result=$query->fetchAll(PDO::FETCH_ASSOC);
// print_r($result);
// $insert=$pdo->prepare('insert into article values("",?,?)');
// $insert->execute(array(1,2));
$sth=$pdo->prepare('select * from article where id=?');
$id=20;
$sth->bindParam(1,$id);
$sth->execute();
$result=$sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
}catch(PDOException $e){
echo $e->getMessage();
}
?>
5、
为所有的连接加上target='_blank'
function contentTargetChange($content){
$pattern='/<[a|A][^>]*>/';
$count=preg_match_all($pattern,$content,$matches);
if($count>0){
try{
$str='';
$arr=preg_split($pattern, $content);
foreach($matches[1] as $key=>$value){
$value=preg_replace('/target=[^>|^ ]*/i','',$value);
$str.=$arr[$key].substr($value,0,-1).' target="_blank">';
}
if(count($arr)>$count){
$str.=array_pop($arr);
}
return $str;
}catch(Exception $e){
return $content;
}
}
return $content;
}
6)、
function dec2f($num){
$base='0123456789abcdef';
$result='';
do{
$result=$base[$num%16].$result;
$num=intval($num/16);
}while($num!=0);
return $result;
} function f2dec($num){
$map=array('0' => 0,
'1' => 1,
'2' => 2,
'3' => 3,
'4' => 4,
'5' => 5,
'6' => 6,
'7' => 7,
'8' => 8,
'9' => 9,
'a' => 10,
'b' => 11,
'c' => 12,
'd' => 13,
'e' => 14,
'f' => 15);
$len=strlen($num);
$result='';
for ($i=0; $i < $len; $i++) {
$result*=16;
$result=$result+$map[$num[$i]];
}
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产生的新的索引行也不能被插入到该位置.索引列的修改过程 ...
随机推荐
- 多层架构(参数化SQL、存储过程)
设置参数化SQL的方式: ------语法一 //设置SQL语句中的参数 //定义 SqlParameter parUid = new SqlParameter("@userId" ...
- runtime学习笔记
获取属性objc_property_t * propertys = class_copyPropertyList(clazz, &outCount); 获取属性名NSString * key ...
- 设计模式 之 装饰者(Decorator)模式
装饰者模式(Decorator):动态地为一个对象添加一些额外的职责,若要扩展一个对象的功能,装饰者提供了比继承更有弹性的替代方案. 结构图: 抽象构件类(Component):给出一个抽象的接口,用 ...
- Spark:一个高效的分布式计算系统
概述 什么是Spark ◆ Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥 ...
- git将代码提交到远程分支(非主分支)
一个仓库可以包含多个分支,有一个默认的主分支:master 若想提交代码至远程仓库的某个分支(非主分支) 先查看下本地分支以及远程分支:git branch -a 由本地分支(非主分支master)提 ...
- Visual Studio 开发平台的安装与单元测试
一.安装VS2013 1.运行安装文件夹中的.exe文件,选择好安装路径与所需功能后开始安装 2.安装后第一次打开,需要一段时间 3.安装成功后,要打开VS2013,在工具栏中找到帮助选项卡,点击注册 ...
- Mongodb Manual阅读笔记:CH5 安全性
5 安全性 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读 ...
- 使用dig查询dns解析
原文地址:使用dig查询dns解析 作者:chenwenming 一般来说linux下查询域名解析有两种选择,nslookup或者dig,而在使用上我觉得dig更加方便顺手. 如果是在debian下的 ...
- Jade模板引擎(一)之Attributes
目录: Attributes Boolean Attributes Style Attributes Class Attributes &Attributes Attributes jade中 ...
- android The public type classname must be defined in its own file 报错
The public type classname must be defined in its own file classname 为类名 错误提示,公用的类必髯有自己拥有独立.java文件 解 ...