PHP判断图片是否存在和jquery中load事件对图片的处理
在公司的图片服务器中,同一个产品一般会存在对应的大图和缩略图.因此,我们在开发手机端的web网站时,默认使用的是产品图片的缩略图,查询数据库时获取的是缩略图的路径.但是,不知什么原因,时不时的,测试的同事总会找到我们,说产品图片没显示出来,是个bug,需要
在公司的图片服务器中,同一个产品一般会存在对应的大图和缩略图.因此,我们在开发手机端的web网站时,默认使用的是产品图片的缩略图,查询数据库时获取的是缩略图的路径.但是,不知什么原因,时不时的,测试的同事总会找到我们,说产品图片没显示出来,是个bug,需要修改.
那么,问题来了.
(1)PHP后台如何判断远程服务器上的图片是否存在
解决思路:获取图片路径-->对图片是否存在进行判断-->不存在,使用大图
<span>/*</span><span>* * @desc 检查远程图片是否存在 * @param string $url 图片远程地址 * @return boolean $found 存在为true,否则false </span><span>*/</span> <span>function</span> check_remote_file_exists(<span>$url</span><span>) { </span><span>//</span><span>curl初始化</span> <span>$curl</span> = curl_init(<span>$url</span><span>); </span><span>//</span><span>不取回数据</span> curl_setopt(<span>$curl</span>, CURLOPT_NOBODY, <span>true</span><span>); </span><span>//</span><span>发送请求,接收结果</span> <span>$result</span> = curl_exec(<span>$curl</span><span>); </span><span>$found</span> = <span>false</span><span>; </span><span>if</span> (<span>$result</span> !== <span>false</span><span>) { </span><span>//</span><span>检查http响应码是否为200</span> <span>$statusCode</span> = curl_getinfo(<span>$curl</span>,<span> CURLINFO_HTTP_CODE); </span><span>if</span> (<span>$statusCode</span> == 200<span>) { </span><span>$found</span> = <span>true</span><span>; } } </span><span>//</span><span>关闭curl资源</span> curl_close(<span>$curl</span><span>); </span><span>//</span><span>返回结果</span> <span>return</span> <span>$found</span><span>; } </span><span>$url</span>='http://home.baidu.com/resource/r/home/img/logo-yy.gif'<span>; </span><span>$error_url</span>='http://home.baidu.com/resource/r/home/img/logo-yy111111.gif'<span>; </span><span>var_dump</span>(check_remote_file_exists(<span>$url</span><span>)); </span><span>echo</span> '<br>'<span>; </span><span>var_dump</span>(check_remote_file_exists(<span>$error_url</span><span>)); </span><span>/*</span><span> 以上例子输出: bool(true) bool(false) </span><span>*/</span>
可以看出,PHP中CURL系列函数还是很强大的.
在百度时,我还发现了说使用fopen()函数进行判断的,但是经实验,未能实现相应功能.举例如下:
<span> 1</span> <span>$url</span>='http://home.baidu.com/resource/r/home/img/logo-yy.gif'<span>; </span><span> 2</span> <span>$error_url</span>='http://home.baidu.com/resource/r/home/img/logo-yy111111.gif'<span>; </span><span> 3</span> <span> 4</span> <span>if</span>( @<span>fopen</span>( <span>$error_url</span>, 'r'<span> ) ) </span><span> 5</span> <span>{ </span><span> 6</span> <span>echo</span> 'File Exits'<span>; </span><span> 7</span> <span>} </span><span> 8</span> <span>else</span> <span> 9</span> <span>{ </span><span>10</span> <span>echo</span> 'File Do Not Exits'<span>; </span><span>11</span> <span>} </span><span>12</span> <span>/*</span> <span>13</span> <span>以上例子输出:File Exits </span><span>14</span> <span>*/</span>
(2)前端jquery中使用load事件对图片的处理
进一步思考,前端使用jquery能否判断远程图片是否存在呢?遗憾的是,在写作本文时,未能找到判断的方法.
示例如下:
注意:引入jquery.js
<span> 1</span> <span><span>DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"</span><span>></span> <span> 2</span> <span><span>html</span><span>></span> <span> 3</span> <span><span>head</span><span>></span> <span> 4</span> <span><span>meta </span><span>http-equiv</span><span>="Content-Type"</span><span> content</span><span>="text/html; charset=utf-8"</span><span>></span> <span> 5</span> <span><span>title</span><span>></span>load event<span></span><span>title</span><span>></span> <span> 6</span> <span><span>script </span><span>language</span><span>="javascript"</span><span> src</span><span>="jquery.js"</span><span>></span><span>script</span><span>></span> <span> 7</span> <span></span><span>head</span><span>></span> <span> 8</span> <span><span>body</span><span>></span> <span> 9</span> <span><span>img </span><span>src</span><span>="http://home.baidu.com/resource/r/home/img/logo-yy.gif"</span><span> alt</span><span>=""</span><span> id</span><span>='test'</span><span>/></span> <span>10</span> <span></span><span>body</span><span>></span> <span>11</span> <span><span>script</span><span>></span> <span>12</span> <span>//</span><span>jquery load event test</span> <span>13</span> <span>//</span><span>var h=$('#test').height();</span> <span>14</span> <span>//</span><span>document.write(h);</span> <span>15</span> <span>$(</span><span>'</span><span>img</span><span>'</span><span>).each(</span><span>function</span><span>(){ </span><span>16</span> <span>//</span><span>先隐藏图片</span> <span>17</span> <span>$(</span><span>this</span><span>).hide(); </span><span>18</span> <span>//</span><span>监听load事件</span> <span>19</span> <span>$(</span><span>this</span><span>).bind(</span><span>'</span><span>load</span><span>'</span><span>,</span><span>function</span><span>(){ </span><span>20</span> <span>//</span><span>加载完成,显示图片</span> <span>21</span> <span>$(</span><span>this</span><span>).show(); </span><span>22</span> <span>}); </span><span>23</span> <span>}); </span><span>24</span> <span></span><span>script</span><span>></span> <span>25</span> <span></span><span>html</span><span>></span></span></span></span></span></span></span></span></span></span>
使用load事件时,有两点需要注意:
第一,load事件和当前jquery代码执行顺序是异步的,
第二,$(document).ready()指的是html代码加载完成,load事件指的是请求的图片下载完成.
http://www.cnblogs.com/kinger/p/4292412.html

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写
