首先,函數會遍曆整段描述,假如一段描述裏面有Hermes wallets這個關鍵詞,那麽函數就會對這個關鍵詞加上鏈接,至于鏈接到哪裏,上面數組裏面有,隻要把數組裏面的内容替換你想要的就可以。

那麽在zencart模闆上怎樣使用此函數呢?你要知道,輸出産品描述的函數是 stripslashes($products_description)

隻要在此函數上再嵌套一個函數即可,像這樣zen_key_replace(stripslashes($products_description))

<?php //自动匹配关键词,遇到相同的关键词的就插入链接
//function zen_key_replace($str){
$array_first = array(
array('Hermes wallets','link1.html'),
array('black ugg boots','link2.html'),
array('cheap ugg boots','link3.html'),
array('cheapest ugg boots','link4.html'),
array('discount ugg boots','link5.html'),
array('girls ugg boots','link6.html'),
array('grey ugg boots','link7.html'),
array('ugg boots','link8.html')
);
$array_last = array();
foreach($array_first as $key=>$value){

//echo $key."= ".$value."<br>";
$array_last[$key] = array('TFXS00'.$key, $value[0], '<a href="'.$value[1].'" title="'.$value[0].'" rel="follow">'.$value[0].'</a>');
//$array_last[$key]."<br>";
}
//print_r($array_last);
//exit;

$count = count($array_last);
for($i=0; $i<$count; $i++){
for($j=$count-1; $j>$i; $j--){
//如果后一个元素长度大于前一个则调换位置
if(strlen($array_last[$j][1]) > strlen($array_last[$j-1][1])){
$tmp = $array_last[$j];
$array_last[$j] = $array_last[$j-1];
$array_last[$j-1] = $tmp;
}
}
}
$keys=$array_last;
print_r($keys);

foreach($keys as $nkeys){
$str= str_ireplace($nkeys[1], $nkeys[0], $str);
}
foreach($keys as $nkeys){
$str= str_ireplace($nkeys[0], $nkeys[2], $str);
}
return $str;
}
?>

zencart産品描述加上錨文本的更多相关文章

  1. 读书笔记—CLR via C#字符串及文本

    前言 这本书这几年零零散散读过两三遍了,作为经典书籍,应该重复读反复读,既然我现在开始写博了,我也准备把以前觉得经典的好书重读细读一遍,并且将笔记整理到博客中,好记性不如烂笔头,同时也在写的过程中也可 ...

  2. html5 文本格式化

    通常标签 <strong> 替换加粗标签 <b> 来使用, <em> 替换 <i>标签使用.然而,这些标签的含义是不同的:<b> 与< ...

  3. Web开发——HTML基础(高级文本格式 列表/style)

    文档资料参考: 参考:https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_fo ...

  4. 重温CLR(十) 字符、字符串和文本处理

    本章将介绍.net中处理字符和字符串的机制 字符 在.NET Framewole中,字符总是表示成16位Unicode代码值,这简化了国际化应用程序的开发. 每个字符都表示成System.Char结构 ...

  5. 非常诡异的IIS下由配置文件加上svg的mime头导致整个网站的静态文件访问报错误

    调试了两天遇到一个非常诡异的问题 一个系统稳定运行了很多年,是用mvc5+WIN2008R2  + .NET 4.5 +IIS环境下运行,非常稳定,最近想迁移到一台新的服务器,为了少麻烦在阿里云上买了 ...

  6. CSS文本控制

    CSS文本控制 文本基础设置 字体设置 font-family可定义多个字体,系统会以从左至右的顺序进行查找,如左侧字体不存在,就往右侧找. 为什么要这么做呢?如果你只用了一种字体,而恰好人家电脑上没 ...

  7. css单行文本与多行溢出文本的省略号问题

    在文字布局和代码编写过程中遇到文本溢出是常有的事,下面总结一下对于单行文本溢出和多行文本溢出省略号的处理. 一.单行文本省略号 <p class="text1"> 这是 ...

  8. C#-WinForm-如何获取文本框(TextBox)中鼠标,光标位置

    文本框(TextBox)中的鼠标位置和光标位置是两个不同的概念,鼠标位置是要点击鼠标后(NouseDown)获取到,而光标位置却是实时就要获取到,也就是用户输入一个字符(KeyUp),这个位置就要改变 ...

  9. [CLR via C#]14. 字符、字符串和文本处理

    一.字符 在.NET Framewole中,字符总是表示成16位Unicode代码值,这简化了国际化应用程序的开发. 每个字符都表示成System.Char结构(一个值类型) 的一个实例.System ...

随机推荐

  1. logstash输出到influxdb

    用了这个logstash扩展 https://github.com/PeterPaulH/logstash-influxdb/blob/master/src/influxdb.rb 把这个文件放到 l ...

  2. InnoDB事务隔离级别

    转载于:http://blog.csdn.net/wudongxu/article/details/8623610 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的 ...

  3. The Number Off of FFF

    X soldiers from the famous “FFF army'' is standing in a line, from left to right. You, as the captai ...

  4. VS2012一打开就停止工作的解决方法

    昨天刚装好VS2012,用得好好的,嘿,今早儿 一打开程序,就告诉我 VS2012停止工作,只有关闭程序或者调试程序. 小主酸菜郁闷不已,必须找到解决方法啊,错误提示如图: 错误原因:        ...

  5. 刚知道的android属性

    在EditText中当设置的高度是wrap_parent,但是随着我们输入的越来越多,编辑框会被拉伸的很丑,所以就用了maxLines属性,设置maxLines="2"说明最多输入 ...

  6. php编译安装报错:make: *** [sapi/cli/php] Error 1 解决办法

    ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':/ext/iconv/iconv.c:2491: undefin ...

  7. Java SE 基础:常用关键字

    Java SE 基础:常用关键字 常用关键字表

  8. WIX

    1. Create msi File http://www.cnblogs.com/lienhua34/archive/2012/10/07/2714367.html 2. information a ...

  9. 【前端】require函数实现原理

    // require函数实现原理: function require(modulePath) { var regExp = /\w+$/g; var moduleName = regExp.exec( ...

  10. 【Normal Form】数据库表结构设计所遵从的范式

    参考的优秀文章 数据库(第一范式,第二范式,第三范式) 数据库设计是件严肃.关键的事儿,一毕业,加入一个大型的行业项目,那儿的前辈资深工程师,就给我灌输数据库如何关键.神圣.深不可测的观念,所以,我一 ...