您的位置:首页 > 编程语言 > PHP开发

PHP:preg_replace

2014-04-29 18:10 253 查看
关于preg_match: /article/6194017.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>

代码:

<?php
$str = 'test.png';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/', '<img>$1</img>', $str);
var_dump($newstr);


输出:

string(37) "<img>100</img>test.png<img>1000</img>"


关于括号的用法,看下最后两个任务:/article/6194017.html

代码2:

<?php
$str = 'test.png';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/', '<img>\1</img>', $str);
var_dump($newstr);


代码3:

<?php
$str = 'test.png';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/', "<img>\\1</img>", $str);
var_dump($newstr);


代码4:

<?php
$str = 'test.png';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/e', "parse_image($1)", $str);
var_dump($newstr);
function parse_image($str)
{
return '<img>'.$str.'</img>';
}


代码5:

<?php
$str = 'test.png';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/', parse_image('$1'), $str);
var_dump($newstr);
function parse_image($str)
{
return '<img>'.$str.'</img>';
}


代码6:

<?php
$str = 'test.png';
$newstr = preg_replace('/\[img\](.*?)\[\/img\]/', parse_image("$1"), $str);
var_dump($newstr);
function parse_image($str)
{
return '<img>'.$str.'</img>';
}


实验:转换以下字符串

aaa

转换规则是:两个标签内的链接,如果是在.360.cn域,则信任,否则过滤url

上述的字符串转换后为:aaa

实现代码:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: