广告投放

帝国cms导航站如何通过链接一键获取网站meta信息(标题、关键词、描述)

目录

      有朋友想做个导航站,找了一圈网上关于帝国cms内核的网址导航站源码,发现价值2999元帝国CMS芒果目录网整站源码符合他的需求,在网上下载安装该源码后发现通过链接一键获取网站meta信息(标题、关键词、描述)和只获取权重网站功能已经失效,同时在线php网站缩略图功能也失效了,问能不能做一款导航站,对于帝国cms功能的二次开发,只能说先测试一下,不保证能全部解决

      需求一:通过链接一键获取网站meta信息(标题、关键词、描述)

      对于这个需求,下载了价值2999元帝国CMS芒果目录网整站源码,发现原需求接口也是使用,php使用正则表达式获取meta信息

    /** 获取META信息 */
    function get_sitemeta($url) {
         $data = file_get_contents($url);
         $meta = array();
         if (!empty($data)) {
              #Title
              preg_match('/<TITLE>([wW]*?)</TITLE>/si', $data, $matches);
              if (!empty($matches[1])) {
                   $meta['title'] = $matches[1];
              }
              #Keywords
              preg_match('/<METAs+name="keywords"s+content="([wW]*?)"/si', $data, $matches);         
              if (empty($matches[1])) {
                   preg_match("/<METAs+name='keywords's+content='([wW]*?)'/si", $data, $matches);              
              }
              if (empty($matches[1])) {
                   preg_match('/<METAs+content="([wW]*?)"s+name="keywords"/si', $data, $matches);              
              }
              if (empty($matches[1])) {
                   preg_match('/<METAs+http-equiv="keywords"s+content="([wW]*?)"/si', $data, $matches);              
              }
              if (!empty($matches[1])) {
                   $meta['keywords'] = $matches[1];
              }
              #Description
              preg_match('/<METAs+name="description"s+content="([wW]*?)"/si', $data, $matches);         
              if (empty($matches[1])) {
                   preg_match("/<METAs+name='description's+content='([wW]*?)'/si", $data, $matches);              
              }
              if (empty($matches[1])) {
                   preg_match('/<METAs+content="([wW]*?)"s+name="description"/si', $data, $matches);                        
              }
              if (empty($matches[1])) {
                   preg_match('/<METAs+http-equiv="description"s+content="([wW]*?)"/si', $data, $matches);              
              }
              if (!empty($matches[1])) {
                   $meta['description'] = $matches[1];
              }
         }
         return $meta;
    }

      简单写了个index.php,加入以下代码,测试该正则表达式是正确的,不论是http://开头还是https://开头链接都可以获取到meta信息三件套标题、关键词和描述

      $site = "http://zz2zz.com";
      $content = get_sitemeta($site);
      print_r($content);

      那么在帝国cms信息页点击获取网站信息却不成功,是哪里除了问题呢?

      问题一:点击获取网站信息提示非法来源

      解决:后台--系统设置--安全参数设置--开启后台来源认证码--把金刚模式改成刺猬模式

      问题二:修改问题一,但是点击获取网站信息无法获取meta信息

      通过弹窗链接发现,点击获取网站信息时包含meta信息和权重信息

      而权重信息链接是失效的,只需要把获取权重的参数删除即可获取meta信息

      问题三:只能获取http://开头的网站,https://开头的网站meta信息无法获取

      原因是原程序作者在写入时,就没有考虑https://

      这时,只需要运用PHP curl_init()简单使用在HTTP、HTTPS上的写法,就能获取到网站meta信息

      curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);//不做服务器认证
      curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//不做客户端认证
    

     至此,成功实现通过链接获取网站meta信息,也就是标题、关键词、和描述

    帝国cms导航站如何通过链接一键获取网站meta信息(标题、关键词、描述)

      需求二:获取网站权重,也就是百度搜索、360搜索、搜狗搜索、神马搜索权重,这个目前不打算写,原因很简单,目前没有找到免费的接口!爱站和站长工具的接口都是需要收费的,至于一些个人博客提供的api,更不打算写了,因为不知道能用多久!

      所以这个需求放弃做了。

      需求三:通过链接获取网站缩略图

      原程序模板使用的是:https://blinky.nemui.org/获取网站缩略图,但是现在似乎网站挂掉了,使用国内ip访问无法打开,使用外网访问也打不开。简单搜索国内网站缩略图的api接口,免费的基本没有,这个功能也只能作罢,如果有免费的网站缩略图api接口,可以抽空写上,不过可以换个方式,可以使用网站ico图片作为缩略图,只需要网址+/favicon.ico即可,至于帝国cms无法上传ico图标,可以查看文章:帝国cms无法上传ico图标格式文件的解决方法

      至此,只实现了通过链接一键获取网站meta信息。

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

    给TA打赏
    共{{data.count}}人
    人已打赏
    广告位招租919838898
    0 条回复 A文章作者 M管理员
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    有新私信 私信列表
    搜索