您好,欢迎来到95分类目录!站长微信:vip3632094
当前位置:95分类目录 » 站长资讯 » 35dir专区 » 文章详细 订阅RssFeed

增加95分类目录后台网站截图不支持外链图片显示问题

来源:本站原创 浏览:295次 时间:2025-05-26
简介:原有的逻辑: 如果传入的 $web_pic 不为空,则将图片路径拼接为 $options['site_root'] . $options['upload_dir'] . '/' . $web_pic。 如果 $web_pic 为空,则返回默认的“无图片”路径 $options['site_root'] . 'public/images/nopic.gif'。 问题:这里的逻辑会无条件地在 $


原有的函数为:



/** thumbs */

function get_webthumb(web_pic) { global options;


if (!empty($web_pic)) {

$strurl = $options['site_root'].$options['upload_dir'].'/'.$web_pic;
} else {
$strurl = $options['site_root'].'public/images/nopic.gif';
}

return $strurl;


}








get_webthumb() 函数用于生成网站的图片路径(缩略图或实际图片)



逻辑如果传入的 $web_pic 不为空,则将图片路径拼接为 $options['site_root'] . $options['upload_dir'] . '/' . $web_pic。



如果 $web_pic 为空,则返回默认的“无图片”路径 $options['site_root'] . 'public/images/nopic.gif'。



这里的逻辑会无条件地在 $web_pic 前添加 $options['site_root'] 和 $options['upload_dir'](可能是 /uploads/ 或类似路径)。因此,如果 $web_pic 是一个外部链接(如 https://i.uzkoo.com/logo/3/202505/6831080830b0c.png),最终路径会变成类似 /uploads/https://i.uzkoo.com/...















我们需要在 get_webthumb() 函数中添加逻辑,检查 $web_pic 是否为外部链接(以 http:// 或 https:// 开头)。如果是外部链接,则直接返回原始值,不拼接前缀路径。



修改后的 get_webthumb() 函数


/** thumbs */ function get_webthumb($web_pic) { global $options; if (!empty($web_pic)) { // 检查是否为外部链接(以http://或https://开头) if (preg_match('/^https?:///i', $web_pic)) { return $web_pic; // 外部链接直接返回,不加前缀 } // 否则拼接本地路径 $strurl = $options['site_root'] . $options['upload_dir'] . '/' . $web_pic;

} else { $strurl = $options['site_root'] . 'public/images/nopic.gif';
} return $strurl;
}


解释




  1. 使用正则表达式 preg_match('/^https?:///i', $web_pic) 检查 $web_pic 是否以 http:// 或 https:// 开头(i 表示不区分大小写)。


  2. 如果是外部链接,直接返回原始值 $web_pic,不拼接 $options['site_root'] 和 $options['upload_dir']。


  3. 如果不是外部链接,继续按原逻辑拼接路径,适用于本地图片。



额外优化(可选)



如果系统中存储的本地图片路径已经包含了 $options['upload_dir'](如 /uploads/),可能会导致路径重复拼接(如 /uploads//uploads/image.jpg)。为避免这种情况,可以进一步优化代码,检查 $web_pic 是否已经包含 $options['upload_dir'] 前缀:


/** thumbs */ function get_webthumb($web_pic) { global $options; if (!empty($web_pic)) { // 检查是否为外部链接(以http://或https://开头) if (preg_match('/^https?:///i', $web_pic)) { return $web_pic; // 外部链接直接返回,不加前缀 } // 检查是否已经包含 upload_dir 前缀 $upload_dir_prefix = $options['upload_dir'] . '/'; if (strpos($web_pic, $upload_dir_prefix) === 0) { $strurl = $options['site_root'] . $web_pic;

} else { $strurl = $options['site_root'] . $upload_dir_prefix . $web_pic;
}
} else { $strurl = $options['site_root'] . 'public/images/nopic.gif';
} return $strurl;
}


优化逻辑




  • 如果 $web_pic 已经以 $options['upload_dir'] . '/' 开头(例如 /uploads/),则只拼接 $options['site_root'],避免重复添加 /uploads/。


  • 否则,按原逻辑拼接完整路径。







函数路径:/www/wwwroot/95dir.com/source/module/prelink.php



拉到最下面替换掉原有的get_webthumb() 函数为上面提供的新函数

© 版权声明

💬 文章评论

正在加载评论统计...

发表评论

0/1000字符
正在加载评论...
🆕最新收录 📚数据归档 🔥TOP排行 🚫黑名单 不通过 📊数据公示 🗺️站点地图

95分类目录 - 专业的网站分类目录平台,精心收录 网站目录VIP优质网站站长资讯

关键词:网站目录 · 网站收录 · 分类目录 · 网站推荐 · 优质网站 · 免费收录

Monitor your Domain Rating with FrogDR
Copyright © 2026 95dir.com All Rights Reserved · 鄂ICP备2024062716号-1 · Processed in 0.098701 second(s), 27 Queries, Gzip Enabled
当前在线 ...| 总访客 ...| 🐧交流群
百度统计