怎么将Z-Blog的缩略图改为远程地址
Lan
2020-05-13 10:29
353 人阅读
0 条评论
这两天发现博客首页的缩略图居然一直用的是本地的图片,这就太浪费服务器的空间了,因为本站的图片都是上传到U-file的。
然后我就开始翻模板文件。最后在include.php文件里面看到了。
那么问题又来了。我虽然学过C#,看过python,但是对PHP可是一脸懵逼呀。
一开始我想偷懒,就去这个模板的交流群问,去Z-Blog的社区问。额,似乎然并卵。
还是得自己动手,丰衣足食呀。
自己用现有的只是分析了一下这些代码
function Blogs_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 = "<img src=\"{$zbp->host}zb_users/theme/{$zbp->theme}/template/timthumb.php?src={$sltu}&w={$sltww}&h={$slthh}&zc=1\" alt=\"{$article->Title}\" />"; //这里就是图片地址
if ($link == 1) {
$sltu = "<a href=\"{$article->Url}\" title=\"{$article->Title}\">{$sltu}</a>";
}
return $sltu;
}
然后回到首页。检查了一下这些缩略图
把链接弄出来
大概就是将这张图片经过timthumb.php处理后展现出来。我的远程加速地址是pan.lanol.cn,所以我只要想办法将www换成pan就行了
然后我就百度搜索php,菜鸟教程走一波,应该是字符串处理一下就行了,所以这里选择php string
有两个替换,区分大小写和不区分大小写。选择不区分吧。
然后我就傻乎乎的把这句话复制到代码里面去了。echo str_ireplace("www","pan",$strResult[1][0]);
然后刷新。。
好吧,我去看下echo的意思才知道这玩意就是输出。。
嗯,这是个意外。
最终将代码改成了这样子
function Blogs_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 = "<img src=\"{$zbp->host}zb_users/theme/{$zbp->theme}/template/timthumb.php?src={$sltu}&w={$sltww}&h={$slthh}&zc=1\" alt=\"{$article->Title}\" />";
if ($link == 1) {
$sltu = "<a href=\"{$article->Url}\" title=\"{$article->Title}\">{$sltu}</a>";
}
return $sltu;
}
完美解决
赞赏
![打赏二维码](https://i-blog.csdnimg.cn/blog_migrate/3a584bda34e1671c4a5d6ebe99b9718e.png)