本节主要内容:
一例文章内容添加内链关键词替换的php代码。
例子:
<?php
/**
* 内容关键词的替换
* edit: WWW.JBXUE.COM
*/
$ci=array("短网址"=>"http://","网址缩短"=>"http://");
//内容字段是content
$content="短网址是个好工具";
foreach($ci as $k=>$v){
$str='<a href="'.$v.'" target="_blank">'.$k.'</a>';
$content=ereg_replace($k,$str,$content);
}
echo $content;
附,帝国cms中的关键字替换代码:
//替换关键字
function ReplaceKey($newstext){
global $empire,$dbtbpre,$public_r;
if(empty($newstext))
{return $newstext;}
$sql=$empire->query("select keyname,keyurl from {$dbtbpre}enewskey order by length(keyname) desc"); //按字段内容长度排序
while($r=$empire->fetch($sql))
{
$newstext=empty($public_r[repkeynum])?str_replace()($r[keyname],'<a href='/blog_article/.$r[keyurl]' target=_blank .$r[keyname].'</a>',$newstext):preg_replace('/'.$r[keyname].'/','<a href='/blog_article/.$r[keyurl]' target=_blank .$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
}
return $newstext;
}
本节主要内容:
学习php实现关键词替换与高亮显示的方法。
例子:
<?php
/*
用处:加亮关键词
要求:备查文章内除HTML标签外所有 < 和 > 符号分别用 < 和 > 替代
$rows['content']=str_replace()("<","<",$rows[content]);
$rows['content']=str_replace(">",">",$rows[content]);
可能存在问题:效率不高 忘记了大小写转换问题
$content:要加亮的备查文章
$key:关键字
site: www.
*/
function highlight($content,$key) {
$k_fi=substr($key,0,1); //取得关键词第一个字符
$k_len=strlen($key); //计算关键词字数
$l_len=strlen($content); //计算备查文章字数
for($l_n=0;$l_n<$l_len;$l_n++) //根据备查文章字数开始循环
{
$l_s=substr($content,$l_n,1); //取得备查文章当前字符
if($l_s=="<") //如果这个字符是标签的开始的话
{
while($l_s!=">") //我们就寻找这个标签的关闭
{
$con.=$l_s; //导入结果
$l_n++; //当然要开始取备查文章的下一个字符
$l_s=substr($content,$l_n,1);
}
$con.=$l_s;
}
elseif($l_s==$k_fi) //如果这个字符与关键词第一个字符相同的话
{
$l_key=substr($content,$l_n,$k_len); //取备查文章当前位置是否匹配关键词
if($l_key!=$key)
{
$con.=$l_s; //导入结果
}
else //如果匹配
{
$l_n+=$k_len-1; //计数跳过相应字数
$con.="<b>{$key}</b>"; //加亮关键词
}
}
else
{
$con.=$l_s; //导入结果
}
}
return $con;
}
// 中文测试
//备查字符串
$str="<a href=/index.html"http://www.\" title=\"当家是\">我们大家的</a>都是一个家";
//关键词
$key="";
//调用函数
$str_hl=highlight($str,$key);
echo "<p>" . $str_hl . "</p>\n";
echo "<hr>";
echo "<p>" . htmlspecialchars()($str_hl) . "</p>\n";
?>
问题描述:
在用PHPCMS的thumb函数时,JPG图片变化大小后,质量会下降很多。
经研究,是PHP的imagejpeg函数的问题,最后修改此函数为imagepng后,问题得以解决。
下面把实现代码,分享给大家。
代码:
<?php
header("Content-type: image/png");
$temp_width = 150;
$temp_height = 180;
$img_path = "test.jpg";
$img_path2 = "test2.jpg";
$im = @imagecreatefromjpeg($img_path);
$temp_img=imagecreatetruecolor($temp_width,$temp_height);
imagecopyresampled($temp_img,$im,0,0,0,0,$temp_width,$temp_height,$temp_width,$temp_height);
//echo $temp_img;
//imagejpeg($temp_img);
imagepng($im,$img_path2);
/*
imagecopyresized($temp_img,$im,0,0,0,0,$temp_width,$temp_height,$srcW,$srcH);
$ni=imagecreatetruecolor($width,$height);
imagecopyresampled
$res = function_exists('imagecreatetruecolor');
var_dump($res);
*/
?>
<br />
<img src="/%20/test.jpg"/>