preg_replace

ECShop2.7.3安装过程中出现的问题全解

老子叫甜甜 提交于 2019-12-04 12:44:42
一、关于preg_replace 因为使用PHP5.5.x,ECShop安装完成之后出现了下面提示,特别是在cls_template.php文件中。下面就将需要替换的部分一一替换。 Deprecated: preg_replace(): The /e modifier is deprecated,use preg_replace_callback instead. 下面是需要替换内容: return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source); 替换为: return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source); $out = "<?php \n" . '$k = ' . preg_replace_callback("/(\'\\$[^,]+)/e" , "stripslashes(trim('\\1','\''));", var_export($t, true)) . ";\n"; 替换为: $out = "<?php \n" . '$k = ' . preg_replace_callback("/(\'\\$[^,]+)/" ,

Remove double quote in json_encode()

匿名 (未验证) 提交于 2019-12-03 02:26:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I want remove double quote in my json_encode, that is my code: connect(); $result = mysql_query("SELECT * from ranking WHERE posicion BETWEEN ".$params['pos_ini']." AND ".$params['pos_fi']) or die('Could not query'); if(mysql_num_rows($result)){ $array_json=array(); $filas = mysql_num_rows($result); $columnas = mysql_num_fields($result); for($i=0;$i My result is that: [{"id_posiciones":"1",posicion:"1",nick:"biwer",puntos:"1000",uid:"1",pais:"ES",idioma:"ES","device_version":"4"}] I want to remove double quote of "id_posiciones" and "device

Sqli-labs 复习 Less25-28 绕过过滤函数对字符的过滤 - GET

匿名 (未验证) 提交于 2019-12-02 22:56:40
之前学习了一遍 sqli-labs,这是巩固复习一遍,代码全部手敲,加深印象 Sqli-labs 博客目录 源代码 $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1"; function blacklist($id) { $id= preg_replace('/or/i',"", $id); //strip out OR (non case sensitive) $id= preg_replace('/AND/i',"", $id); //Strip out AND (non case sensitive) return $id; } ˼· 本关主要为 or and 过滤,如何绕过 or 和 and 过滤。 大小写变形 Or,OR,oR 编码,hex,urlencode 添加注释 /*or*/ 利用符号 and=&& or=|| 报错注入 or 示例 基于报错的 and 示例 源代码 $sql="SELECT * FROM users WHERE id=$id LIMIT 0,1"; function blacklist($id) { $id= preg_replace('/or/i',"", $id); //strip out OR (non case sensitive) $id= preg_replace('/AND/i',

PHP代码审计

匿名 (未验证) 提交于 2019-12-02 22:11:45
第一节:PHP 审计环境、审计工具、审计平台介绍与安装 作者:暗月(mOon ) 博客:www.moonsec.com 0x01:测试环境 wamp 安装 0x02:PHP 编写工具 EditPlu Notepad++ Zendstudio 10 0x03:代码审计工具 Seay 代码审计工具 0x04:代码审计平台安装 DVWA-1.0.8 ZVulDrill 第二节:代码审计中常用代码调试函数与注释 0x01:调试函数 echo (print): 这是最简单的输出数据调试方法,一般用来输出变量值,或者你不确定程序执行 到了哪个分支的情况下是用。 print_r、var_dump(var_export)、debug_zval_dump 这个主要是用来输出变量数据值,特别是数组和对象数据,一般我们在查看接口 返回值,或者某些不太确定变量的时候,都可以使用这两个 API。 var_dump 会额外输出数据类型: print_r 输出:格式很整齐,跟 var_dump 的区别是没有类型数据,并且布尔值 的 false 和值 NULL 输出为空 var_export 输出,所有的数据是可以作为组织好的变量输出的,都是能够作为 直接赋值使用: 需要注意的一点是, var_export 对于资源型的变量会输出 NULL debug_zval_dump 输出结果跟 var_dump 类似

PHP 常用函数大全

橙三吉。 提交于 2019-11-30 11:24:07
//批量替换多层目录中文件内容 function listFiles($dir) { if(is_dir($dir)) { //打开目录 $handle = opendir($dir); if(false == $handle) { echo "<font color='red'>目录打开失败!<br/>"; } //阅读目录 while(false!=($file=readdir($handle))) { //列出所有文件并去掉'.'和'..' if($file!='.' && $file!='..' && $file!='batchReplace.php') { //所得到的文件名是否是一个目录 if(is_dir("$dir/$file")) { //列出目录下的文件 listFiles("$dir/$file"); } else { chmod("$dir/$file", 0777); //如果是文件则打开该文件 $filesize = file_put_contents("$dir/$file", str_replace(array('***', '***'), array('**', '**'), file_get_contents("$dir/$file"))); echo "$dir/$file"."<font color='red'> ---替换成功</font>

PHP的正则匹配小结

落爺英雄遲暮 提交于 2019-11-29 03:35:43
PCRE模式是PHP的正则匹配规则。 需要由分隔符闭合包裹(分隔符可以是任意非字母数字,非反斜线,非空白字符)这意味着例如preg_macth("[\w{2,3}]",$subject)这种类型的正则匹配也是可以的。当然常见的还是/\w{2,3}/这种,当里面需要转义的反斜线太多的时候,可以考虑用其他类型的分隔符进行闭合包裹。 例如:/http:\/\// 可以写成 @http ://@ 这种 也可以匹配到http://开头的。分隔符结束后,可以增加模式修饰符(模式修饰符其实是匹配功能的增强比如设置了i就会对大小写不敏感 m是进行多行匹配 s点号不匹配换行符号) 基础正则使用小结:(最常用看到的匹配) \ 反斜线转义的时候使用,匹配反斜线需要\\ [abc] {2,5} 匹配abc中任何一个字母组成的2-5长度的字符串 {^123$}m 匹配123开头结尾的行 三个字符串的等价使用: * = {0,} + ={1,} ? ={0,1} 下面是preg_replace($pattern,$replace,$subject)的匹配进行例子讲解(实际中的正则匹配比语法复杂的多) 1.正则匹配的分组调用 <?php $string = 'April 15, 2003'; //对正则进行三重匹配 \w+的匹配\d+的匹配,\d+的匹配 $pattern = '/(\w+) (\d+), (

CodeIgniter 结合phpcms模板功能

限于喜欢 提交于 2019-11-26 18:59:37
用了CodeIgniter框架几个月,之前一直习惯用phpcms 来做网站底层框架,后来发现在CodeIgniter 更加适合小站点应用开发,但是他自带的view功能,并不强大了,相反很吃力。 相比之下phpcms的view模板解析就强大多了,结合之前做的一个项目,特地将增强的代码copy出来。 在CodeIgniter libraries中 增加 template_cache.php <?php if (!defined( ' BASEPATH ' )) exit( ' No direct script access allowed ' ); /* * * 模板解析缓存 */ final class template_cache { public $cache_path; public function __construct() { // $CI =& get_instance(); $ this ->cache_path = APPPATH. ' views ' ; } /* * * 编译模板 * * @param $module 模块名称 * @param $template 模板文件名 * @param $istag 是否为标签模板 * @return unknown */ public function template_compile($module,