PHP如何截取指定两个字符串之间的文字? 5
我用的wordpres!用了一款主题,在每篇文章的描述信息都会截取文章中的第一段文字作为描述,但是我的网站是用来做软件的,第一行文字是“软件大小”这四个字,所以造成了每篇...
我用的wordpres!用了一款主题,在每篇文章的描述信息都会截取文章中的第一段文字作为描述,但是我的网站是用来做软件的,第一行文字是“软件大小”这四个字,所以造成了每篇文章的描述信息都雷同!在Google管理员工具里出现500篇“短的元素说明”和“重复的元素说明”。
其中主题截取的函数如下:
if (!function_exists('utf8Substr')) {
function utf8Substr($str, $from, $len)
{
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
}
if ( is_single() ){
if ($post->post_excerpt) {
$description = $post->post_excerpt;
} else {
if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){
$post_content = $result['1'];
} else {
$post_content_r = explode("\n",trim(strip_tags($post->post_content)));
$post_content = $post_content_r['0'];
}
$description = utf8Substr($post_content,0,220);
}
$keywords = "";
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$keywords = $keywords . $tag->name . ",";
}
}
?>
我需要截取每篇文章中“游戏说明:”后的文字作为描述摘要,不知道怎么实现,修改了
if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result))
这句,不是出错就是截取不到。
我想截取如下图中红色部分的文字作为文章描述摘要:
希望网友们能赐教一二!非常感谢!
大家可以去看一下我网页文章的描述信息:http://ipabar.org
难道没有人知道吗? 展开
其中主题截取的函数如下:
if (!function_exists('utf8Substr')) {
function utf8Substr($str, $from, $len)
{
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
}
if ( is_single() ){
if ($post->post_excerpt) {
$description = $post->post_excerpt;
} else {
if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){
$post_content = $result['1'];
} else {
$post_content_r = explode("\n",trim(strip_tags($post->post_content)));
$post_content = $post_content_r['0'];
}
$description = utf8Substr($post_content,0,220);
}
$keywords = "";
$tags = wp_get_post_tags($post->ID);
foreach ($tags as $tag ) {
$keywords = $keywords . $tag->name . ",";
}
}
?>
我需要截取每篇文章中“游戏说明:”后的文字作为描述摘要,不知道怎么实现,修改了
if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result))
这句,不是出错就是截取不到。
我想截取如下图中红色部分的文字作为文章描述摘要:
希望网友们能赐教一二!非常感谢!
大家可以去看一下我网页文章的描述信息:http://ipabar.org
难道没有人知道吗? 展开
4个回答
展开全部
$str='<h1 style="margin:0px">USB PC Joystick Game Controller</h1>';
preg_match_all('/<h1[^>]*>(.*)<\/h1>/',$str,$match);
print_r($match[1][0]);
preg_match_all('/<h1[^>]*>(.*)<\/h1>/',$str,$match);
print_r($match[1][0]);
追问
您能不能修改一下 if(preg_match('/(.*)/iU',trim(strip_tags($post->post_content,"")),$result))这段代码 啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
游戏说明部分可以修改一下,比如说前面加个标签<div></div>
改成:
if(preg_match('/<div>(.*)<\/div>/iU',trim(strip_tags($post->post_content,"<div>")),$result))
改成:
if(preg_match('/<div>(.*)<\/div>/iU',trim(strip_tags($post->post_content,"<div>")),$result))
更多追问追答
追问
这个方法确实可以,但是网站有600多篇文章,如果按照这样修改得改到什么时候啊
没有别的方法了吗?
追答
在模板文件里面改
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(preg_match('/<strong>游戏介绍:<\/strong><\/p>\s+<p>(.*)<\/p>/iU',trim($post->post_content),$result))
无需去掉P标签再匹配,去掉了反而取不到
无需去掉P标签再匹配,去掉了反而取不到
追问
谢谢您的回答,但是换上您给的代码后经测试还是去不到,能不能加QQ再聊?QQ:84527977
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
preg_match('/游戏介绍.*<\p>.*<p>(.*)<\/p>/isU',$body,$arr);
试下
试下
追问
还是不行,还是截取的第一段文字,奇怪了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询