wordpress中preg_match正则提取和替换字符串
发布:smiling 来源: PHP粉丝网 添加日期:2014-03-23 21:39:42 浏览: 评论:0
在wordpress显示文章的时候,如果文章形式是图片的文章,需要把里面的图片部分的代码进行修改和替换,如把以下代码:
- <img src="/wp-content/uploads/2014/02/hbzy1.gif" alt="hbzy"
- width="60" height="60" class="alignnone size-full wp-image-2100" />
输出显示的时候替换成如下代码:
- <div class="gif-box">
- <img src="/wp-content/uploads/2014/02/hbzy1.jpg!static"
- _src="/wp-content/uploads/2014/02/hbzy1.jpg!static"
- class="alignnone size-full wp-image-2100"
- tsrc="/wp-content/uploads/2014/02/hbzy1.jpg" width="60" height="60" />
- <div class="gif-loading-box">
- <i class="gif-loading" style="display:none;"></i>
- <i class="gif-play"></i>
- </div>
- </div>
这里是为了动态gif图片默认的时候不播放,点击才播放,这个时候需要用到preg_match和正则表达式匹配图片代码,并用str_replace进行字符串的替换和修改,代码如下:
- function gif_content($content) {
- $content = get_the_content ();
- $img_html = preg_match ( '/(<img[^>]+>)/i', $content, $maches ); //获取img图片的html,如:<img src=".." class=".." width=""> //www.111cn.net
- $img_html = $maches [0];
- $img_width = preg_match ( '/width="[0-9]+"/i', $img_html, $maches ); //获取图片宽度,如:width="32"
- $img_width = str_replace('=', ':', $maches[0]);
- $img_width = str_replace('"', '', $img_width);
- $img_width = $img_width.'px'; //替换成width:32px
- $img_height = preg_match ( '/height="[0-9]+"/i', $img_html, $maches );
- $img_height = str_replace('=', ':', $maches[0]);
- $img_height = str_replace('"', '', $img_height);
- $img_height = $img_height.'px';
- $img_name = preg_match ( '!http://.+.(?:jpe?g|png|gif)!Ui', $img_html, $maches );
- $img_name = $maches [0];
- $img_html2 = str_replace ( 'src="' . $img_name . '"', 'src="' . $img_name . '!static" _src="' . $img_name . '!static' . '" tsrc="' . $img_name . '"', $img_html );
- $img_html2 = '<div class="gif-box" style="'.$img_width.';'.$img_height.'">' . $img_html2 . '<div class="gif-loading-box"><i class="gif-loading" style="display:none;"></i><i class="gif-play"></i></div></div>';//在图片的html代码前后加上div
- $content = str_replace ( $img_html, $img_html2, $content );
- return $content;
- }
- add_filter('the_content', 'gif_content', 10);//wordpress的钩子函数
这里是用在wordpress的文章形式中的,当文章形式是image的时候,给这个文章形式下的图片进行这样的操作,另外在index.php中需要使用如下代码:
- $format=get_post_format();
- if ('image'!=$format) {
- remove_filter('the_content', 'gif_content');
- }
- get_template_part( 'content', get_post_format() );
这里要判断一下如果是其他文章形式就移除这个钩子,否则所有文章形式的图片都被进行这样的操作,本文讲的是preg_match正则提取和替换字符串,以及wordpress的文章形式.
Tags: wordpress 正则 字符串
相关文章
- ·WordPress初级教程1:什么是博客?(2013-11-11)
- ·WordPress初级教程-2: 什么是WordPress?(2013-11-11)
- ·WordPress初级教程-3: WordPress的功能和特点(2013-11-11)
- ·WordPress初级教程-4: 选择WordPress博客的主机和域名(2013-11-11)
- ·WordPress初级教程-5: 安装WordPress(2013-11-11)
- ·WordPress初级教程-6: 本地安装WordPress(2013-11-11)
- ·WordPress初级教程-7: 一个数据库中安装多个WordPress博客(2013-11-11)
- ·WordPress初级教程-8: WordPress控制面板/ Dashboard(2013-11-11)
- ·WordPress初级教程-9: WordPress用户设置/ Users(2013-11-11)
- ·WordPress初级教程-10: WordPress博客配置/ Settings(2013-11-11)
- ·关于wordpress上传图片不显示的原因(2013-11-11)
- ·WordPress程序的脆弱点你知道吗 (2013-11-11)
- ·总结八大Wordpress网站百度收录实现秒收的方法绝招 (2013-11-11)
- ·WordPress如何网站投稿者也可以上传图片(2014-03-18)
- ·WordPress怎么修改新用户注册邮件内容(2014-03-18)
- ·WordPress怎么添加前台注册功能(2014-03-18)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)