//提取标题,//获取标题$inarr =

  • 栏目:编程 时间:2020-04-09 14:36
<返回列表

采集在现在的cms中都常常用到哦,下面我们就来看看关于php 正则表达式 取标题,关键词,内容代码源码哦。

//获取标题
  $inarr = array();
  preg_match("/<title>(.*)</title>/isU",$body,$inarr);
  if(isset($inarr[1]))
  {
   $redatas['title'] = $inarr[1];
  }

例子代码如下,可常用于采集哦、

//获取标题$inarr = array();preg_match(/title(.*)/title/isU,$body,$inarr);if(isset($inarr[1])){$redatas['title'] = $inarr[1];}

  //获取关键词
  $inarr = array();
  preg_match("/<meta[s]+name=['"]keywords['"] content=['"](.*)['"]/isU",$body,$inarr);
  if(isset($inarr[1]))
  {
   $redatas['keywords'] = cn_substr(html2text($inarr[1]),30);
  }

 代码如下

//获取关键词$inarr = array();preg_match(/meta[s]+name=[']keywords['] content=['](.*)[']/isU,$body,$inarr);if(isset($inarr[1])){$redatas['keywords'] = cn_substr(html2text($inarr[1]),30);}

  //获取摘要
  $inarr = array();
  preg_match("/<meta[s]+name=['"]description['"] content=['"](.*)['"]/isU",$body,$inarr);
  if(isset($inarr[1]))
  {
   $redatas['description'] = cn_substr(html2text($inarr[1]),$cfg_auot_description);
  }

1、获取页面标题

//获取摘要$inarr = array();preg_match(/meta[s]+name=[']description['] content=['](.*)[']/isU,$body,$inarr);if(isset($inarr[1])){$redatas['description'] = cn_substr(html2text($inarr[1]),$cfg_auot_description);}

  //获取内容
  if($s!='' && $e!='')
  {
   $redatas['body'] = GetHtmlAreaA($s,$e,$body);
   if($redatas['body']!='' && $redatas['description']=='')
   {
    $redatas['description'] = cn_substr(html2text($redatas['body']),$GLOBALS['cfg_auot_description']);
   }
  }
 }
 return $redatas;

//提取标题
            preg_match('/<title>(?<title>.*?)<\/title>/i', $html, $titleArr);
            $title = $titleArr['title'];
2、获取body主体内容,并将背景图片提取出来替换成其他图片地址

//获取内容if($s!='' $e!=''){$redatas['body'] = GetHtmlAreaA($s,$e,$body);if($redatas['body']!='' $redatas['description']==''){$redatas['description'] = cn_substr(html2text($redatas['body']),$GLOBALS['cfg_auot_description']);}}}return $redatas;

/**
 * 获取BODY主体区域内容
 * @param $html
 * @param $urlRoot
 * @return mixed
 */
function getBody($html,$urlRoot = null){
    //提取BODY主体
    preg_match('/<!--body-->(.*?)<!--body-->/is ', $html, $bodyArr);
    if(!$bodyArr){
        preg_match('/<body.*?>(.*?)<\/body>/is ', $html, $bodyArr);
    }
    $body = $bodyArr[1];
    //替换img文件
    $body =  preg_replace('/(<[img|IMG].*src=[\'|"])(\.\.\/)*(img.[^\'||^"]+)/',"$1$urlRoot$3",$body);
    //替换html文件内的css背景图片
    $body =  preg_replace('~\b(background(-image)?\s*:(.*?)\(\s*[\'|"]?)(\.\.\/)*(img.*?)?\s*\)~i',"$1$urlRoot$5)",$body);
    return $body;
}
3、提取页面Description内容

function getDescription($html){
    // Get the 'content' attribute value in a <meta name="description" ... />
    $matches = array();
 
    // Search for <meta name="description" content="Buy my stuff" />
    preg_match('/<meta.*?name=("|\')description("|\').*?content=("|\')(.*?)("|\')/i', $html, $matches);
    if (count($matches) > 4) {
        return trim($matches[4]);
    }
 
    // Order of attributes could be swapped around: <meta content="Buy my stuff" name="description" />
    preg_match('/<meta.*?content=("|\')(.*?)("|\').*?name=("|\')description("|\')/i', $html, $matches);
    if (count($matches) > 2) {
        return trim($matches[2]);
    }
 
    // No match
    return null;
}
4、替换css文件的背景图片地址

/**
 * 获取CSS内容
 * @param $cssCnt
 * @param $urlRoot
 * @return mixed
 */
function getCss($cssCnt,$urlRoot =null){
    //匹配包含 img文件夹的相对路径图片 (含义绝对路径的不包含在其中)
    //匹配替换不一定准确,因为只是将 含义 ../ 的地址转为url 而没有考虑 ../../ 之类的层级关系
    $css =  preg_replace('~\b(background(-image)?\s*:(.*?)\(\s*[\'|"]?)(\.\.\/)*(img.*?)?\s*\)~i',"$1$urlRoot$5)",$cssCnt);
    //添加css前缀
    $css =  preg_replace('/\b.(.*?)[,|{]/',"pat .$0",$cssCnt);
    //TODO 压缩css
    return $css;
}

 

从上面例子来看其实都是非常的简单就是批有规律的标签为开始与结束节点,这样我们可以获取这两个字符之类的内容也就是我们要提取的内容了哦,只是在中间有字符或空格的一些处理了哦。

上一篇:ajax 注册验证,class=defult用户名长度3-12位/div' 下一篇:没有了

更多阅读

//提取标题,//获取标题$inarr =

编程 2020-04-09
采集在现在的cms中都常常用到哦,下面我们就来看看关于php 正则表达式取标题,关键词,内容...
查看全文

ajax 注册验证,class=defult用户名长度3-12位

编程 2020-04-09
现在我们把check.js文件代码来看看吧. ajax 注册验证,今天这个文章有一点怪了,就是验证url 是否...
查看全文

简体中文、繁体中文 - UTF8 编码转换,简

编程 2020-04-09
韦德体育 ,目前该类库可以实现,简体中文 - 繁体中文编码互换,简体中文、繁体中文 -拼音...
查看全文

友情链接: 网站地图

Copyright © 2015-2019 http://www.koi-bumi.com. 韦德体育有限公司 版权所有