解决这个问题让大家都实现ecshop关键词自动内链
2016-07-07 15:00 来源:www.chinab4c.com 作者:ecshop专家
在网上找了一个Ecshop加内链的办法,但测试时有问题,现发布任务请人解决这两个问题。先发原作者的方法: 网站的内链建设是SEO工作的重要内容之一,资讯新闻网站如此,商城系统也是如此,但大部分店主并没有意识到这一点。不知道你看新闻的时候注意到没有,文章中出现了名人的名字,总是自动加上到他Blog或者微博的链接,门户网站给我们做了很好的表率,你的商城是否需要这样呢 实现的大致原理 将关键字和链接按照规则放到文本中,程序读取关键词和链接,判断商品描述和文章中是否有关键词需要替换,如有需要替换掉。替换步骤在读取数据库之后进行,并不写入到数据库中。 虽然程序很简单,但要避免出现下面情况哦: 1. <a href=”url”>这也是一个关键词</a> 被处理为 <a href=”url”>这也是一个<a href=”url”>关键词</a></a> 2. <a href=”url” alt=”关键词出现在这了”>打酱油的</a> 被处理为 <a href=”url” alt=”<a href=”url”>关键词</a>出现在这了”>打酱油的</a> 3. <img title=”关键词出现在这了”/> 被处理为 <img title=”<a href=”url”>关键词</a>出现在这了”/> …(其他类似情况) 主要代码 article.php中:
goods.php中:
说明信息: 1.关键词和链接放在哪里? 直接用记事本编辑文本urls.txt,编辑后放到data目录下,格式:关键词---url 每行一个,放在前面的优先级最高。 2.为什么不放上修改后的文件呢? 我不清楚你的ecshop是什么版本,有没有被修改过,所以直接用了我修改过的文件可能会导致你的系统出错,有点基础的朋友看了这篇文章肯定可以操作成功,操作之前请先备份。 3.为什么使用文本文档保存数据呢? 出发点是为了方便客户操作,不使用数据库存储避免升级时候引起不必要的麻烦,如果你感兴趣,你可以用数据库、xml或存储为数组变量。 4.注意编码问题,文中代码适用于utf-8。 GB2312编码的系统把 $content = iconv("GB2312","UTF-8",file_get_contents("data/urls.txt")); 改为 $content = file_get_contents("data/urls.txt"); 5.操作之前,务必备份!祝你发财,呵呵 要解决的是以下两个问题,本人对php一窍不通,但连猜带蒙觉得这两个问题应该不大。最好是在原作者代码基础上改,可适用于ecshop2.7.1和2.7.2版本。 1、照原作者方法修改两个文件后,文章页article.php中 $tmp1 = explode("<",$row['content']); 这一行出现错误:Notice: Undefined variable: row in ........ 商品页article.php中 $tmp1 = explode("<",$goods['goods_desc']); 这一行出现错误:Notice: Undefined variable: goods in........ 猜测是$row['content']和$goods['goods_desc']两个值没有取得,在程序原文件中,这两个文件也没有再对这两个值进行定义,而是通goods.dwt和atricle.dwt获得。求解决这一问题,使文章和商品中的关键词能正常替换。 2、在解决以上问题的基础上,限制一下替换次数,即一个页面中关键词只替换一次,而不是全面替换 |
回答:
顶啊,解决了大家都有好处 |
高手赶紧出现把 |
有人试过吗? |
phpsir QQ 733905 可以解决 |
这个再顶一下。希望有人能解决 |
楼主代码错误了。就是开头有个调整编码的你丢了 以下为正确代码 article.php中: $content = iconv("GB2312","UTF-8",file_get_contents("data/urls.txt")); $array= explode("\r\n",$content); foreach ($array AS $value){ $tmp =explode("---",$value); if ($tmp !== false){ $str = "<a target='_blank' href='".$tmp[1]."'>".$tmp[0]."</a>"; $str_1 = $tmp[0]; $str_2 = $str; $tmp1 = explode("<",$row['content']); foreach ($tmp1 as $key=>$item){ $tmp2 = explode(">",$item); if (sizeof($tmp2)>1) { if (substr($tmp2[0],0,1)!="a" && substr($tmp2[0],0,1)!="A"){ $tmp2[1] = str_ireplace($str_1,$str_2,$tmp2[1]); $tmp1[$key] = implode(">",$tmp2); } } } $row['content'] = implode("<",$tmp1); } } goods.php中: $content = iconv("GB2312","UTF-8",file_get_contents("data/urls.txt")); $array= explode("\r\n",$content); foreach ($array AS $value){ $tmp =explode("---",$value); if ($tmp !== false){ $str = "<a target='_blank' href='".$tmp[1]."'>".$tmp[0]."</a>"; $str_1 = $tmp[0]; $str_2 = $str; $tmp1 = explode("<",$row['content']); foreach ($tmp1 as $key=>$item){ $tmp2 = explode(">",$item); if (sizeof($tmp2)>1) { if (substr($tmp2[0],0,1)!="a" && substr($tmp2[0],0,1)!="A"){ $tmp2[1] = str_ireplace($str_1,$str_2,$tmp2[1]); $tmp1[$key] = implode(">",$tmp2); } } } $row['content'] = implode("<",$tmp1); } } |
我也需要啊,最好是一个插件! |
mark一下 |
最近更新
常用插件
- ecshop分类批量扩展插件
ecshop分类批量扩展插件,这个插件是ecshop插件里面比较核心的插件。我们...
- ecshop2.7.1打印发货单插件
ecshop2.7.1打印发货单插件介绍:ecshop2.7.1和以前的ecshop版本不一样,ecs...
- ecshop二次商品订购人信息
ecshop二次商品订购人信息填写插件,有时候给朋友送花,或者是送礼品的...
- ecshop二次开发详细页面生
插件介绍: ECSHOP系统,在很多时候,很多商品没有人购买,不但购买的人...
- ecshop商品分类名称增加样
ecshop插件介绍:本插件可以方便在后台管理,为ecshop商品分类名称增加样...
ecshop热门问答
ecshop热门资料
ecshopECSHOP整站建设
ecshopNBA
ecshopcat
ecshopecmall购物获积分功能
ecshop立即购买
ecshopECSHOP升级
安装错误
ecshop英文版
ecshopokbuy
ecshop1146
ecshopFLASHAD
ecshopmail
ecshop实名制
ecshopneed
ecshop二次开发
ecshop小动作
ecshop违法
ecshopEC整合UC
ecshop嵌套
B4C电子商务
ecshop已解决
ecshop来电
ecshop香港电器街
ecshop在线装机
ecshop性能
ecshop监控系统
ecshop备案号
ecshopsize
ecshop美国服务器
ecshop310