PHP:preg_replace
关于preg_match: http://www.cnblogs.com/helww/p/3466720.html
关于preg_match_all:暂时没有完整的
preg_replace_callback核心例子1:把<a>标签的文本中的<替换为空,文本的其它部分不变
$note = '<a href="http://www.so.com"><>ab<></a><a href="http://www.so.com"><>ab<></a>';
function filter_subject($matches){
return $matches[1].(str_replace(array("<", ">"), array(" ", " "), $matches[2])) . $matches[3];
}
$note = preg_replace_callback('/(<a href.*?>)(.*?)(<\/a>)/', "filter_subject", $note); 输出:"<a href="http://www.so.com"> ab </a><a href="http://www.so.com"> ab </a>"
preg_replace: 能够将匹配的模式处理成目标模式。
任务:把[img]100[/img]处理为<img>100</img>
代码:
<?php
$str = '[img]100[/img]test.png[img]1000[/img]';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/', '<img>$1</img>', $str);
var_dump($newstr);
输出:
string(37) "<img>100</img>test.png<img>1000</img>"
关于括号的用法,看下最后两个任务:http://www.cnblogs.com/helww/p/3466720.html
代码2:
<?php
$str = '[img]100[/img]test.png[img]1000[/img]';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/', '<img>\1</img>', $str);
var_dump($newstr);
代码3:
<?php
$str = '[img]100[/img]test.png[img]1000[/img]';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/', "<img>\\1</img>", $str);
var_dump($newstr);
代码4:
<?php
$str = '[img]100[/img]test.png[img]1000[/img]';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/e', "parse_image($1)", $str);
var_dump($newstr);
function parse_image($str)
{
return '<img>'.$str.'</img>';
}
代码5:
<?php
$str = '[img]100[/img]test.png[img]1000[/img]';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/', parse_image('$1'), $str);
var_dump($newstr);
function parse_image($str)
{
return '<img>'.$str.'</img>';
}
代码6:
<?php
$str = '[img]100[/img]test.png[img]1000[/img]';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/', parse_image("$1"), $str);
var_dump($newstr);
function parse_image($str)
{
return '<img>'.$str.'</img>';
}
实验:转换以下字符串
[img]http://xss.re/a.php[/img]aaa[img]http://xss.re/a.php[/img]
转换规则是:[img]*[/img]两个标签内的链接,如果是在.360.cn域,则信任,否则过滤url
上述的字符串转换后为:[img][/img]aaa[img][/img]
实现代码:
PHP:preg_replace的更多相关文章
- ECSHOP如何解决Deprecated: preg_replace()报错 Home / 开源程序 / ECSHOP / ECSHOP如何解决Deprecated: preg_replace()报错
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in D:\w ...
- 头痛的ASCII和preg_replace()
说这个之前,大家先看下这条语句: preg_replace("/\<\?\=(\\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\[\]\"\'\$\x7f- ...
- ecshop php5.4以上版本错误之preg_replace 替换成 preg_replace_callback
类似这样的报错: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instea ...
- PHP去除unicode续:json_encode之后,仅仅有文字,数字不见了的解决方法
接前文.http://blog.csdn.net/yanzi1225627/article/details/44985487 这么处理了一段时间.确实没发现问题.但近期发现了一个bug.比方输入&qu ...
- preg_replace引发的phpmyadmin(4.3.0-4.6.2)命令执行漏洞
编辑器坏了 (: 今天看到这个phpmyadmin的代码执行,https://www.waitalone.cn/phpmyadmin-preg_replace-rce.html 记录一下:preg_ ...
- 【ecshop】如何解决DEPRECATED: PREG_REPLACE()报错
部署的ecshop 在高版本的PHP环境里边 ,访问 单个店铺时候会报错, 访问文件路径: http://www.test.com/supplier.php?suppId=5 类似这样的报错: D ...
- ECSHOP完美解决Deprecated: preg_replace()报错的问题
随着PHP5.5 的普及,ECSHOP系统又爆出了新的错误.PHP发展到PHP5.5版本以后,有了很多细微的变化.而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百 ...
- preg_replace
preg_replace — 执行一个正则表达式的搜索和替换 说明: preg_replace ( mixed $pattern , mixed $replacement , mixed $subje ...
- preg_replace相关问题
preg_replace preg_replace 函数执行一个正则表达式的搜索和替换. 语法: preg_replace ( mixed $pattern , mixed $replacement ...
随机推荐
- JAVA 并发编程关键点
上下文切换 死锁 volatile synchronized 原子操作 happens-before as-if serial 锁的内存 final 线程:daemon start suspend r ...
- android 进程和线程管理
进程和线程的概念: 进程:程序的运行实例. 线程:cpu调度基本单位. Activity启动的时候,启动一个主线程,两个binder线程. 主线程实如何产生的?ZygoteInit启动,经由一系列调用 ...
- 一键批量ping任意ip段的存活主机
=======================by me===================================== @echo offecho.color FC for /f %%i ...
- [妙味DOM]第三课:Event-事件详解1
知识点总结 焦点事件 onfocus 获取焦点 onblur 失点焦点 obj.focus() 给指定元素设置焦点 obj.blur() 取消指定元素的焦点 obj.select() 选择指定元素里的 ...
- 《JS权威指南学习总结--9.2 类和构造函数》
内容要点: 例9-1展示了在JS中定义类的其中一种方法.但这种方法并不常用,毕竟它没有定义构造函数,构造函数是用来初始化新创建的对象的. 使用关键字new来调用构造函数会自动创建一个新对象,因此构造函 ...
- json_encode转成带 花括号的{ } 和 中括号的[ ] 2种 形式 json数据
//提交多个出差人员 .命名为数组 name="apply_members[] " //php接收到数据 为 数组 $aa = array('0'=>11,'1'=> ...
- HTTP Status 400 - Required request part 'file' is not present
今天使用Spring MVC做一个文件上传的功能,在提交表单的时候出现了如下错误:
- HDU 5612 Baby Ming and Matrix games(DFS)
题目链接 题解:题意为给出一个N*M的矩阵,然后(i∗2,j∗2) (i,j=0,1,2...)的点处是数字,两个数字之间是符号,其他位置是‘#’号. 但不知道是理解的问题还是题目描述的问题,数据中还 ...
- top.location != self.location
top.location != self.location 就是说当前窗体的url和父窗体的 url是不是相同 这个是为了防止别的网站嵌入你的网站的内容(比如用iframe嵌入的你的网站的页面)
- NOIP2002-普及组复赛-第三题-选数
题目描述 Description 已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加,可分别得到一系列的和.例如当 n=4,k=3,4 个整 ...