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

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

来源:本站原创 浏览:18次 时间: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() 函数为上面提供的新函数

© 版权声明

推荐站点

  • QR Online.ioQR Online.io

    Free online QR code generator supporting URL, text, contact info, WiFi and more. Customize colors, add logos, high-quality output.

    www.qronline.io
  • Temp Mail 365Temp Mail 365

    Temp Mail 365 provides instant temporary email addresses to protect your privacy and avoid spam. No registration required, 5-60 minute validity.

    temp-mail-365.com
  • 我的电视我的电视

    我的电视是一个在线观看高清影视电影的免费站点

    my0713.com
  • 优站库 - 新型分类目录优站库 - 新型分类目录

    一个集网站推荐、内容推荐于一体的宝藏之地。我们精心搜罗各类常用网站,构建起全面的网站目录。无论是学习提升所需的在线课程平台,还是休闲娱乐的影视音乐网站,亦或是商务办公的效率工具站点,都能在我们的分类大全中快速找到。同时,我们也是一个充满活力的建站交流社区。站长们在此分享经验、探讨技术,共同提升网站建设水平。作为网址导航,我们为你清晰分类,节省寻找优质网站的时间和精力。在这里,你无需再为找不到合适的网站而烦恼,只需轻轻一点,就能开启精彩的网络之旅。

    www.uzkoo.com
  • Bible Verse of the DayBible Verse of the Day

    Get your free Bible Verse of the Day

    verseoftheday.online