关于preg_replace()函数
379 字
2 分钟
关于preg_replace()函数
preg_replace 函数执行一个正则表达式的搜索和替换。
函数参数说明
- $pattern: 要搜索的模式,可以是字符串或一个字符串数组。
- $replacement: 用于替换的字符串或字符串数组。
- $subject: 要搜索替换的目标字符串或字符串数组。
- $limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。
- $count: 可选,为替换执行的次数。
这里有一篇文章,关于replacement如何使用。
一个实例
这个实例是在fancybox标签构建的时候看到的,研究了好一阵才明白其中的原理。
function fancybox ($content){ global $post; $pattern = "/<img(.*?)src=('|\")([^>]*).(bmp|gif|jpeg|jpg|png|swf)('|\")(.*?)\/>/i"; $replacement = '<a$1href=$2$3.$4$5 data-fancybox="kanochan-images"$6><img$1src=$2$3.$4$5$6></a>'; $content = preg_replace($pattern, $replacement, $content); return $content;}原始文本
<img src="https://image.kanochan.net/2022/09/02/202209022213304.png" alt="image-20220902221322442" />替换后的文本
<a href="https://image.kanochan.net/2022/09/02/202209022213304.png" data-fancybox="images" alt="image-20220902221322442" ><img src="https://image.kanochan.net/2022/09/02/202209022213304.png" alt="image-20220902221322442" /></a>参数解析
$1-> (.?) —> .:匹配除了换行“\n”外的任何字符;:匹配前面的子表达式零次或多次;?:当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串 —> null$2—> (’|\”) —> 匹配单引号或双引号 —> ”$3-> ([^/>]*) —> 匹配除了“>”之外的任何字符,并进行零次或多次匹配 —> 结果是:https://image.kanochan.net/2022/09/02/202209022213304$4—> (bmp|gif|jpeg|jpg|png|swf) —> 匹配图片扩展名 —> png$5—> (’|\”) —> 匹配单引号或双引号 —> ”$6-> (.*?) —> 匹配信息同$1—> null
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章智能推荐
1
关于目标
日常2023-04-03
2
关于朋友圈
日常2022-07-25
3
关于重新定向
日常2022-04-26
4
关于历史动态
日常2022-04-09
5
关于消失的这段时间
日常2022-08-05
随机文章随机推荐

