当前位置:网站首页 > 更多 > 站长帮 > 正文

[WEB] 怎么将Z-Blog的缩略图改为远程地址

作者:CC下载站 日期:2020-05-13 00:00:00 浏览:68 分类:站长帮

这两天发现博客首页的缩略图居然一直用的是本地的图片,这就太浪费服务器的空间了,因为本站的图片都是上传到U-file的。

然后我就开始翻模板文件。最后在include.php文件里面看到了。

那么问题又来了。我虽然学过C#,看过python,但是对PHP可是一脸懵逼呀。

一开始我想偷懒,就去这个模板的交流群问,去Z-Blog的社区问。额,似乎然并卵。

还是得自己动手,丰衣足食呀。

自己用现有的只是分析了一下这些代码

functionBlogs_thumbnail($id,$sltww,$slthh,$link)
{
global$zbp,$article;
$article=GetPost((int)$id);
$random=mt_rand(1,10);
preg_match_all('/<img.*?(?:|\t|\r|\n)?src=['"]?(.+?)['"]?(?:(?:|\t|\r|\n)+.*?)?/>/sim',$article->Content,$strResult,PREG_PATTERN_ORDER);
$n=count($strResult[1]);//文章中图片数量
$zdsuoluetu=$article->Metas->Blogs_suoluetu;//是否手动设置缩略图?
if(empty($zdsuoluetu)){//如果不是吧
if($n>0){//再判断图片数量是否大于0.
$sltu=$strResult[1][0];//如果是则取第一张图片为缩略图
}else{
$sltu="{$zbp->host}zb_users/theme/{$zbp->theme}/image/random/{$random}.jpg";//否则就在本地目录10张图片内随机选一张作为缩略图
}
}else{
$sltu=$zdsuoluetu;//缩略图为手动设置的缩略图
}
$sltu="<imgsrc="{$zbp->host}zb_users/theme/{$zbp->theme}/template/timthumb.php?src={$sltu}&w={$sltww}&h={$slthh}&zc=1"/>";//这里就是图片地址
if($link==1){
$sltu="<ahref="{$article->Url}">{$sltu}</a>";
}
return$sltu;
}

然后回到首页。检查了一下这些缩略图

把链接弄出来

大概就是将这张图片经过timthumb.php处理后展现出来。我的远程加速地址是pan.lanol.cn,所以我只要想办法将www换成pan就行了

然后我就百度搜索php,菜鸟教程走一波,应该是字符串处理一下就行了,所以这里选择php string

有两个替换,区分大小写和不区分大小写。选择不区分吧。

然后我就傻乎乎的把这句话复制到代码里面去了。echo str_ireplace("www","pan",$strResult[1][0]);

然后刷新。。

好吧,我去看下echo的意思才知道这玩意就是输出。。

嗯,这是个意外。

最终将代码改成了这样子

functionBlogs_thumbnail($id,$sltww,$slthh,$link)
{
global$zbp,$article;
$article=GetPost((int)$id);
$random=mt_rand(1,10);
preg_match_all('/<img.*?(?:|\t|\r|\n)?src=['"]?(.+?)['"]?(?:(?:|\t|\r|\n)+.*?)?/>/sim',$article->Content,$strResult,PREG_PATTERN_ORDER);
$n=count($strResult[1]);
$zdsuoluetu=$article->Metas->Blogs_suoluetu;
if(empty($zdsuoluetu)){
if($n>0){
$sltu=str_ireplace("www","pan",$strResult[1][0]);
}else{
$sltu="{$zbp->host}zb_users/theme/{$zbp->theme}/image/random/{$random}.jpg";
}
}else{
$sltu=$zdsuoluetu;
}
$sltu="<imgsrc="{$zbp->host}zb_users/theme/{$zbp->theme}/template/timthumb.php?src={$sltu}&w={$sltww}&h={$slthh}&zc=1"/>";
if($link==1){
$sltu="<ahref="{$article->Url}">{$sltu}</a>";
}
return$sltu;
}

完美解决

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯