图片地址 经过二次调用,不直接显示
通过请求第二个php页面 传递参数名
<?php
$pwd = 'https://xxxx/icon/';
$url = @$_GET['url'];
$image_file = $pwd.$url.".png";
if($image_file){
$image_url=$image_file;
}
else
{
$image_url="./i/default.png";
}
header("Location: $image_url");
exit;
?>
增强版
-调用页面(icon_cos.php)的代码
<?php
header('Content-type: image/svg+xml');
// 备注image/x-icon用于显示ico图标,image/svg+xml用于显示矢量图标
include_once("fav_function.php");
// 关闭错误报告
//error_reporting(0);
//腾讯云cos对象存储路径
$TencentCloudCOS = 'https://data-xxx.cos.ap-shanghai.myqcloud.com/svg/';
//本地资源路径
$LocalRes = "i/fav.png";
//获取传递的url数据
$url = @$_GET['url'];
//重别处扒来
if($url){ //链接不为空
$image_url = $TencentCloudCOS.$url.".svg";
$image_null = $TencentCloudCOS.imageholder.".svg";;
$curl = get_url_content($image_url);
$StatusCode = $curl['getinfo'];
//不调用服务器缓存目录下文件,直接获取API链接文件
if($StatusCode['http_code']=='200'){ //链接真实存在并且能访问到文件
$ico_file = curl_file_get_contents($image_url);
}else{ //链接真,但不能访问到文件
$ico_file = curl_file_get_contents($image_null);
}
}else{//未输入链接情况只能调用本地资源
$ico_file = curl_file_get_contents($LocalRes);
}
echo $ico_file;
?>
-方法 函数的页面(fav_function.php)代码
<?php
function get_url_content($bbb) {
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $bbb);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$file_info['exec']= curl_exec($ch);
$file_info['getinfo'] = curl_getinfo($ch); //判断状态 有的情况下无法正确判断ico是否存在
curl_close($ch);
return $file_info;
}
function isUrl($s)
{
return preg_match('/^http[s]?:\/\/'.
'(([0-9]{1,3}\.){3}[0-9]{1,3}'. // IP形式的URL- 199.194.52.184
'|'. // 允许IP和DOMAIN(域名)
'([0-9a-z_!~*\'()-]+\.)*'. // 三级域验证- www.
'([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.'. // 二级域验证
'[a-z]{2,6})'. // 顶级域验证.com or .museum
'(:[0-9]{1,4})?'. // 端口- :80
'((\/\?)|'. // 如果含有文件对文件部分进行校验
'(\/[0-9a-zA-Z_!~\*\'\(\)\.;\?:@&=\+\$,%#-\/]*)?)$/',
$s) == 1;
}
//个人新增方法用于替换系统自带的file_get_contents函数
function curl_file_get_contents($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); //设置访问的url地址
//curl_setopt($ch,CURLOPT_HEADER,1); //是否显示头部信息
curl_setopt($ch, CURLOPT_TIMEOUT, 10); //设置超时
curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_); //用户访问代理 User-Agent
curl_setopt($ch, CURLOPT_REFERER,_REFERER_); //设置 referer
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); //跟踪301
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //返回结果
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //https请求不验证证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //https请求不验证hosts
$r = curl_exec($ch);
curl_close($ch);
return $r;
}
?>
暂无评论