为指定关键字加链接锚文本:加了注释+有点不解
本帖最后由 6683637 于 2012-4-26 09:27 编辑<?php
/*
来两句话,本人快揭不开锅了。有需要哪哈 哪哈 哪哈的朋友记得加我QQ 17547523 只要能赚钱 干啥都行。
论坛ID lypying
不付费没有技术支持 自己研究或看教程
http://bbs.locoy.com/spider-58713-1-1.html
*/
function str_replace_once($needle, $replace, $haystack)//needle原来要替换的字符,replace为替换后的字符,haystack为原来的内容
{
global $gbi;
$pos = strpos($haystack, $needle); // 得到要替换字符的位置 needle为要替换字符,$haystack是文章
if ($pos === false) {//没有在文章里面找到关键字
return $haystack; //返回文章,等于跳出这个函数
} //如果没有就返回$haystack
else{
if($gbi>=2){
return $haystack;
}
else{
$gbi++; //如果关键字小于2个则网上递增中间量
return substr_replace($haystack, $replace, $pos, strlen($needle));//haystack为原来的内容,replace替换的内容\既然SEO过的内容,pos从哪里开始替换,strlen($needle)替换长度
//该程序只做一次替换。
}
}
}
if($LabelArray['内容'])
{
$gbi=0;
$array=array("北京|<a href=www.163.com>北京</a>","天津|<a href=www.163.com>天津</a>","上海|<a href=www.163.com>上海</a>","重庆|<a href=www.163.com>重庆</a>");
foreach ($array as $v) {
//echo $v."<br>";
$arrstr= split ('[|]',$v);//返回$arrstr:原来的内容 $arrstr:替换的内容
$LabelArray['内容']=str_replace_once($arrstr, $arrstr, $LabelArray['内容']); //执行替换一次的函数
}
}
//#############以上为用户操作区域#############################################################################################################################
//#############以下语句必须保留,建议不更改###################################################################################################################
//ob_clean();
echo serialize($LabelArray); //将内容数组序列化,不过这一句是否必要还不清楚,第一次接触火车头的PHP接口
?>在该文章学会了以下函数。
strpos() 函数返回字符串在另一个字符串中第一次出现的位置。
substr_replace() 函数把字符串的一部分替换为另一个字符串。
foreach ($array as $v):对$v在这里的作用不是很明白
split ('[|]',$v):将$v字符串里面的内容以|为界限分劈,返回数组
serialize:对数组进行序列化,不知道作用是什么
规则教程第七之插件教程之为指定关键字加链接锚文本
http://bbs.locoy.com/forum.php?mod=viewthread&tid=58713&highlight=%B2%E5%BC%FE
非常感谢lypying 兄提供这个代码,我是第一次接触火车头的PHP代码编写,以前也没怎么学过PHP,不知道上面的注释对不对,如果有错误,还希望有懂得的朋友纠正。不尽感激。
页:
[1]