问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php如何识别外链地址是不是图片

发布网友 发布时间:2022-05-10 11:55

我来回答

4个回答

懂视网 时间:2022-05-10 16:16

方式一

直接正则匹配URL链接,是否是以.png,.gif,.jpg,.jpeg结尾的。

preg_match('/.*(.png|.jpg|.jpeg|.gif)$/', $url);

这个是一个最简单的方式,但是不够精确,因为并不是所有的图片链接都是以图片名字+扩展名结尾的。

方式二

用CURL获取图片URL的response header

首先创建一个curl,并将头文件的信息,作为数据流输出

$url = "http://*************"; //图片的链接地址
$ch = curl_init();
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //是否跟着爬取重定向的页面
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //将curl_exec()获取的值以文本流的形式返回,而不是直接
输出。 curl_setopt($ch, CURLOPT_HEADER, 1); // 启用时会将头文件的信息作为数据流输出 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); //设置超时时间 curl_setopt($ch, CURLOPT_URL, $url); //设置URL $content = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); //curl的httpcode $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); //获取头大小 curl_close($ch);

此时content中包含头信息和图片的二进制内容,然后根据头的大小($headerSize)截取出头信息,剩下的就是图片的二进制内容了。

$headers = substr($content, 0, $headerSize); //根据头大小截取头信息

头信息输出结构如下

HTTP/1.1 200 OK
Server: JSP3/2.0.14
Date: Sun, 30 Jul 2017 06:54:47 GMT
Content-Type: image/jpeg
Content-Length: 152094
Connection: keep-alive
ETag: "7751852900776331536"
Last-Modified: Tue, 02 May 2017 10:33:16 GMT
Expires: Wed, 18 Jul 2018 06:25:38 GMT
Age: 879492
Cache-Control: max-age=31536000
Accept-Ranges: bytes
Error-Message: OK
Ohc-Response-Time: 1 0 0 0 0 0

可以看到里面有个Content-Type: image/jpeg,然后处理头信息,取出想要的内容

$head_data=preg_split('/
/',$headers); //逐行放入数组中
$head_data = array_filter($head_data); //过滤空数组
$headers_arr = [];
foreach($head_data as $val){ //按:分割开
 list($k,$v) = explode(":",$val); //:前面的作为key,后面的作为value,放入数组中
 $headers_arr[$k] = $v;
}
$img_type = explode("/",trim($headers_arr['Content-Type'])); //然后将获取到的Content-Type中的值用/分隔开
if ($httpcode == 200 && strcasecmp($img_type[0],'image') == 0) {//如果httpcode为200,并且Content-type前面的部分为image,则说明该链接可以访问成功,并且是一个图片类型的
 $type = $img_type[1];
 .............
} else {//否则........
 ............
}

方式三

用PHP的get_headers() 函数,可以直接获取响应的头信息,但是相比于curl,不能设置超时时间。

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, 1));
?>
Array
(
 [0] => HTTP/1.1 200 OK
 [1] => Date: Sat, 29 May 2004 12:28:13 GMT
 [2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
 [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
 [4] => ETag: "3f80f-1b6-3e1cb03b"
 [5] => Accept-Ranges: bytes
 [6] => Content-Length: 438
 [7] => Connection: close
 [8] => Content-Type: text/html
)

Array
(
 [0] => HTTP/1.1 200 OK
 [Date] => Sat, 29 May 2004 12:28:14 GMT
 [Server] => Apache/1.3.27 (Unix) (Red-Hat/Linux)
 [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
 [ETag] => "3f80f-1b6-3e1cb03b"
 [Accept-Ranges] => bytes
 [Content-Length] => 438
 [Connection] => close
 [Content-Type] => text/html
)

推荐:php服务器

热心网友 时间:2022-05-10 13:24

判断有没有这个IMG标签就可以了!有则为图片,反之是文字链接!追问我要代码

热心网友 时间:2022-05-10 14:42

PHP 本身是有函数 判断文件类型的 拿链接地址直接判断就可以了啊追问我也知道啊 这不就是来问怎么判断嘛

热心网友 时间:2022-05-10 16:17

描述不清,请补充问题。

无耻伸手党提的狗屎问题,滚。追问这么清楚的问题还描述不清

什么是外链相册?外链流量又是怎么算的?

外链相册就是一种支持图片链接的相册,一般网站提供的这种功能都对照片尺寸有限制,或者收费。外链相册中的图片有一个URL地址,通过这个地址,可以将相册中的照片插入到别的BBS,这样就不会受这个论坛发图的各种限制,也就是所谓的链发大图。还是比较推荐有照片外链相册,支持原图批量上传/批量外链、图片搬...

淘宝网上如何让把照片放到宝贝描述里?

先把你希望放进去的照片上传到支持外链的网络相册里 淘宝有很多相册前期显示的很好,后面用着用着就会变成叉叉 我现在在用这个网站的相册,效果还不错,还会自动打LOGO,你可以去注册一个账号 http://passport.51.com/passport.5p?gourl=http%3A%2F%2Fmy.51.com%2Fwebim%2Findex.php%3Fre...

如何给加外链

代码如下如何给图片加外链&lt;liclass="slidersLi"url="/user.php?a=login"style="background:url(https://www.aimatech.com/r/front/images/... 代码如下如何给图片加外链

我在淘宝的宝贝描述上传不了图片

其实,你说的根本问题,就是外链。网络上显示的图片,都是将网络图片外链到那个页面里。拿淘宝上来说,你如果想在宝贝描述里插入图片,首先你就要选择一个支持淘宝的网络相册,然后把图片上传到网络相册,再复制外链地址,然后将外链地址粘贴到宝贝描述那个编辑框上的插入图片按钮里就行了。如果您不太懂这...

如何发布高质量外链接

外链是否是高质量的,得发出去之后才知道。所以除了外链内容的质量高低意外,外链的发布平台对外链的质量影响也是很大的。俗话说的好,酒香也怕巷子深啊。试想下你发布了一篇很棒的文章,但是发布的平台很少有人去,权重又低,那么即使你的外链内容质量再怎么的好也不能够说是高质量的外联。我想打击都...

网站外链是啥?

就是连接网站与网站之间进行跳转的链接地址,其实这个概念本身也没有进行深度解析的价值,稍微了解一下就行,有价值的在于如何利用seo通过外连创造价值。二玩外连其实就是在玩seo SEO是一种让网站在搜索引擎上获取排名和流量的技术,SEO利用用户搜索关键词的行为习惯,获取的流量都是精准的流量,只要有了...

能够上传gif的网站支持外链

能够外链的GIF网站很多,但是国内的都有时间限制,很快就会被删除。所以推荐国外的。http://tinypic.com/login.php 试试这个绝对好,大小还不受限制哦!!1M小意思啦!http://i44.tinypic.com/rs7d38.jpg(图片地址)比如这张GIF,4.2M哦。我的推荐绝对没错!!论坛插入格式为:[IMG]图片地址[...

哪个在线文档可以直接跳转到外链接

1、打开Editplus新建一个PHP文件,复制粘贴如下代码,然后另存为go.php再上传到网站根目录然后跳转的格式为:{本站地址}/go.php?url={外链地址} 2、打开Editplus新建一个PHP文件,复制粘贴如下代码,然后另存为go.php再上传到网站根目录。这样出来的形式就是{本站地址}/go.php?{外链地址},相对于第...

如何将自己的图片上传到网上

首先你要有一个网络相册,比如QQ空间的相册,现在很多门户网站都有自己的免费相册,而且空间巨大。只要注册了以后就可以根据提示上传照片了,按提示操作很容易的。如果想要用作外链的话建议你用http://tinypic.com/login.php,速度很快,空间也足够,只不过是英文的,不用作外链建议用QQ空间的相册,只要有...

200分求一个支持外链并且永久保存的网络硬盘!

自己可以设定登陆密码,也可不设,永久保存,下载时可右点-属性,查看链接,放在网页上,别人都可以下载的。http://hotbbs.cn 免费互动论坛:功能强大,自己慢慢就设置,可以在论坛上放zip文件,文件地址清楚可见!!(而且后缀为*.zip)你可以在后台设定,访问的权限。下载速度超快。。。反正功能很多...

php图像识别技术 php ocr识别 php人脸识别 php数字识别 纯php可以做人脸识别吗 php文字识别插件 php人脸识别库 php实现人脸识别登录 外链是什么
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
斯特拉斯克莱德大学研究生 小米移动是什么类型的卡 印地方程式赛赛车车队 我想电话订购9月30号的到广州的车票,可是电话订票到明天上午10.00才能开... ...卧铺非常紧张。。。我要怎样才订得到?哪天几点钟... 网络订票和电话订票都是几点开始?北京到大连的火车票预订 电话订票到底几点开始啊?8点卖12天后的票,我8点打,就告诉我卖完了?有知... 电话订票可以提前几天.几点开始订 暑假工是否可以随时辞职 求教:Photoshop CS激活与免激活有何不同? 扬州办游园年票在哪里办 扬州游园卡在哪里办? 扬州公园年卡多少钱?? 扬州年度游园证价格是多少啊? 扬州游园卡2017在哪里办?多少钱?可以玩多少个地方 扬州2017年游园卡怎么办?地址价格? 扬州游园卡怎办 扬州游园证多少钱,有学生证会有优惠不? 我是南京的,在扬州工作想办一张扬州的游园年卡,能办吗?多少钱啊? 扬州游园卡办理 扬州景点,当地人办理游园卡一年多少钱?家庭卡是怎么办理的? 2017年扬州游园卡办理 扬州的游园卡在哪里办的 我想办一张扬州的游园卡,价格是多少,有哪些景点 大家好,我想问下扬州游园证在那里办,就是游园年卡,需要带什么_百度问一问 扬州游园卡在哪里办 为什么qq接受的txt文件不能使用其他应用打开 《一只特立独行的猪 》是如何运用幽默诙谐的写作手法 《小马王 》影评 《一只特立独行的猪》好句赏析3句 ,急救啊!!大神们出手帮帮忙,不要再隐居山林了。真的急用啊!0.0 5个周记题材 周记题材,快一点啊! 周记写什么好呢。初二求题材 周记题材有哪些 为什么QQ群里修改自己姓名会提示修改失败呢? 洋葱腌制后营养、功效会流失吗? 为什么空气炸锅纸粘食物 联通号我要怎么打印月结电子发票 夫妻离婚贷款债务怎么办 民法典夫妻离婚贷款债务怎么办 网页怎样设置超链接颜色的 夫妻离婚怎么办贷款 OPPO Reno 标准版发热怎么办? opporeno4se手机发热怎么解决 趣头条的网址是什么 趣头条为什么总是跳入第三方软件? 趣头条辅助材料复制的文章链接不是同一个领域的可以吗? 出国务工 不通过中介行吗? 出国打工,有不用中介费的吗,也比较合适的 醉的偏旁读什么