关于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的更多相关文章

  1. 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 ...

  2. 头痛的ASCII和preg_replace()

    说这个之前,大家先看下这条语句: preg_replace("/\<\?\=(\\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\[\]\"\'\$\x7f- ...

  3. ecshop php5.4以上版本错误之preg_replace 替换成 preg_replace_callback

    类似这样的报错: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instea ...

  4. PHP去除unicode续:json_encode之后,仅仅有文字,数字不见了的解决方法

    接前文.http://blog.csdn.net/yanzi1225627/article/details/44985487 这么处理了一段时间.确实没发现问题.但近期发现了一个bug.比方输入&qu ...

  5. preg_replace引发的phpmyadmin(4.3.0-4.6.2)命令执行漏洞

    编辑器坏了 (:  今天看到这个phpmyadmin的代码执行,https://www.waitalone.cn/phpmyadmin-preg_replace-rce.html 记录一下:preg_ ...

  6. 【ecshop】如何解决DEPRECATED: PREG_REPLACE()报错

    部署的ecshop  在高版本的PHP环境里边  ,访问 单个店铺时候会报错, 访问文件路径: http://www.test.com/supplier.php?suppId=5 类似这样的报错: D ...

  7. ECSHOP完美解决Deprecated: preg_replace()报错的问题

    随着PHP5.5 的普及,ECSHOP系统又爆出了新的错误.PHP发展到PHP5.5版本以后,有了很多细微的变化.而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百 ...

  8. preg_replace

    preg_replace — 执行一个正则表达式的搜索和替换 说明: preg_replace ( mixed $pattern , mixed $replacement , mixed $subje ...

  9. preg_replace相关问题

    preg_replace preg_replace 函数执行一个正则表达式的搜索和替换. 语法: preg_replace ( mixed $pattern , mixed $replacement ...

随机推荐

  1. MUI判断网络连接以及监听网络变化JS

    来源:netChange问题:怎么判断网络状态 MUI用于获取当前设备的网络类型 function plusReady(){ var types = {}; types[plus.networkinf ...

  2. White space is required before the encoding pseudo attribute in the XML declaration.

    错误出现的位置: <?xml version="1.0"encoding="UTF-8"?> 正确方式: <?xml version=&quo ...

  3. 淘淘商城_day10_课堂笔记

    今日大纲 Dubbo入门学习 使用dubbo优化单点登录系统 系统间服务调用方式 浏览器直接访问 浏览器发起请求,通过ajax或jsonp方式请求: Httpclient方式 系统与系统之间通过Htt ...

  4. html5--画布

    简介 canvas是HTML5中的新元素,你可以使用javascript用它来绘制图形.图标.以及其它任何视觉性图像.它也可用于创建图片特效和动画.canvas 元素本身是没有绘图能力的.所有的绘制工 ...

  5. js实例--js滚动条缓慢滚动到顶部

    收集篇(已测)-- <html><head> <script type="text/javascript"> var currentPositi ...

  6. scroll、client和offset的区别

    scroll.client和offset的区别:http://www.cnblogs.com/pcd12321/p/4448420.html

  7. jQuery判断滚动条是上滚还是下滚,且是否到达底部或顶部

    jQuery判断滚动条是上滚还是下滚,且是否到达底部或顶部:http://www.haorooms.com/post/jquery_scroll_upanddown //滚动条滚动加载更多内容 //判 ...

  8. JavaScript的正则表达式

    1.文本框只能输入数字(不包括小数点) <input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpas ...

  9. PHP数据类型转换(字符转数字,数字转字符)

    PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: (int).(integer):转换成整形 (float).(double).(real):转换成浮点型 (string):转换成字符串 ...

  10. POJ 1716 Integer Intervals#贪心

    (- ̄▽ ̄)-* //求一个集合,这个集合与任意一个区间的交集,需至少有两个数字 //贪心过程:按n个区间的最右值从小到大对区间进行排列, //集合首先取第一个区间的最右两个数字, //到第二个区间, ...