一种逆天的PHP字符串构造方法.
来源:互联网 发布:123d design mac 云盘 编辑:程序博客网 时间:2024/04/27 22:22
虽然PHP有<<<这种多行字符串的用法,但用着不爽啊,因为最后的结束行不能有空格。看看我写的这种字符串构造方法吧,代码如下:
/**把一个匿名函数的注释转换为字符串 * @param function $closure 匿名函数 * @param array $replace 替换占位字符的内容,占位字符的格式正则表现为{[0-9]+},比如{0}、{1} 其中数值对应$replace的索引 * @return string 返回匿名函数内的注释内容 */ function string($closure,$replace=NULL){ $func = new ReflectionFunction($closure); $start = $func->getStartLine() - 1;$end = $func->getEndLine() - 1;$filename = $func->getFileName();$code=implode("", array_slice(file($filename),$start, $end - $start + 1)); $reg="/\\/\\*([^\\0]+)\\*\\//"; $match=array(); preg_match($reg,$code,$match); if(count($match)>0){ if(!$replace){ return preg_replace("/\\\\\\\/","\\",preg_replace("/\*(\\\\\/)/", "*/", trim($match[1]))); } if(count($replace)<=0){ return preg_replace("/\\\\\\\/","\\",preg_replace("/\*(\\\\\/)/", "*/", trim($match[1]))); } $tmp1=$match[1]; for($i=0;$i<count($replace);$i++){ $r=$replace[$i]; $tmp1=str_replace("{".$i."}", $r, $tmp1); } return preg_replace('/\\\\\\\/','\\',preg_replace("/\*(\\\\\/)/", "*/", $tmp1)); } return ""; }
$sql=string(function(){/* select * from table1 T1 left join table2 T2 on T2.id=T1.id where T1.id={0} && T2.name='{1}' */},array(101,"ioriliao"));
输出结果:
select * from table1 T1left join table2 T2 on T2.id=T1.idwhere T1.id=101 && T2.name='ioriliao'
0 0
- 一种逆天的PHP字符串构造方法.
- PHP中一种字符串的倒置方法
- js中构造重复字符串的一种简便方法
- php的一种hashCode方法
- 二叉搜索树的一种构造方法
- 一种构造组合方法以及bind的一种用法
- 浅谈PHP的构造方法
- 5.3--类的一种特殊的--成员方法--构造方法
- php规范一种字符串
- 产生随机字符串的一种方法
- 一种字符串表达式求值的简单方法
- 获取数据库连接字符串的一种方法
- oracle split 字符串的一种方法
- 关于“回文”字符串的一种简单方法
- 一种格式化一定长度字符串的方法
- 位序转字符串的一种高效方法
- 一种字符串相似性度量的方法
- 一种奇怪的字符串输出方法
- rrdcache 和 batch的问题
- 多线程
- C4047、间接级别、间接寻址级别不同
- 如何学习和阅读H264标准--弄清楚编解码的流程和 H.264 的关键技术
- 如何安装和破解Photoshop CS6
- 一种逆天的PHP字符串构造方法.
- 常见的空间(3)
- C++编译链接过程
- Ruby notes
- jsp页面使用百度地图定位
- 从语言进步到编程-睡不着翻了翻以前老师的一篇文章
- 数据库索引以及优化
- http协议理解
- 完美网络