yii2中使用php判斷圖片是否存在

在我們?nèi)粘5拈_(kāi)發(fā)中,經(jīng)常需要用到判斷圖片是否存在,存在則顯示,不存在則顯示默認(rèn)圖片,那么我們用到的判斷有哪些呢?今天我們就來(lái)看下幾個(gè)常用的方法。

yii2中使用php判斷圖片是否存在

YII2中使用php判斷圖片是否存在

1、file_exists()函數(shù)

file_exists() 函數(shù)檢查文件或目錄是否存在。

如果指定的文件或目錄存在則返回 true,否則返回 false。

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

eg:?file_exists(path);其中的參數(shù)path必須是路徑,不能是url不然會(huì)一直返回false;

注意:

1、文件的任何上級(jí)目錄,只有寫(xiě)權(quán)限時(shí)報(bào)文件不存在;

2、文件的任何上級(jí)目錄,只有讀權(quán)限時(shí)也報(bào)文件不存在;

3、而當(dāng)所有上級(jí)目錄都有執(zhí)行權(quán)限的時(shí)候,報(bào)文件是存在的,一切都正常。

說(shuō)明file_exists()在判斷文件是否存在的時(shí)候是遞歸判斷每個(gè)目錄是不是有執(zhí)行權(quán)限。

2、file_get_contents()函數(shù)

file_get_contents —?將整個(gè)文件讀入一個(gè)字符串

如果失敗,file_get_contents()?將返回?FALSE。?

果要打開(kāi)有特殊字符的 URL (比如說(shuō)有空格),就需要使用?urlencode()?進(jìn)行 URL 編碼。?

但是此函數(shù)如果請(qǐng)求比較多,文件比較大,那么可能會(huì)超時(shí)未響應(yīng),導(dǎo)致服務(wù)器掛掉

要設(shè)置file_get_contents函數(shù)的超時(shí)時(shí)間,可以用Resource $context的timeout參數(shù),代碼如下:

$opts?=?array( ?  'http'=>array( ?    'method'=>"GET",     ?'timeout'=>10,   ?) ?); ?$context?=?stream_context_create($opts); ?$html?=file_get_contents('http://www.example.com',?false,?$context); echo?$html;

3、cURL方法

實(shí)現(xiàn)的功能:

1、實(shí)現(xiàn)遠(yuǎn)程獲取和采集內(nèi)容

2、實(shí)現(xiàn)PHP 網(wǎng)頁(yè)版的FTP上傳下載

3、實(shí)現(xiàn)模擬登陸:去一個(gè)郵件系統(tǒng),curl可以模擬Cookies

4、實(shí)現(xiàn)接口對(duì)接(API),數(shù)據(jù)傳輸?shù)龋和ㄟ^(guò)一個(gè)平臺(tái)發(fā)送短信啊,抓取和傳遞所傳輸?shù)男畔ⅰ?/p>

5、實(shí)現(xiàn)模擬Cookie等:登陸的狀態(tài)下才可以操作一些屬性。

如何使用CURL功能:

默認(rèn)情況加PHP是不支持CURL的,需要在php.ini中開(kāi)啟該功能

;extension=php_curl.dll前面的分號(hào)去掉

1? 整個(gè)操作過(guò)程中第一步是用curl_init()函數(shù)進(jìn)行初始化

2.用curl_setopt()函數(shù)進(jìn)行設(shè)置選項(xiàng)。

3.設(shè)置后,進(jìn)行執(zhí)行事務(wù) curl_exec($curl);

4 最后關(guān)閉curl_close();

兼容get和post方法的curl;

function?curl($url,?$type?=?'get',?$post_data?=?null,?$second?=?30) { ????$ch?=?curl_init(); ????//設(shè)置超時(shí) ????curl_setopt($ch,?CURLOPT_TIMEOUT,?$second); ????curl_setopt($ch,?CURLOPT_URL,?$url); ????curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1); ????curl_setopt($ch,?CURLOPT_SSL_VERIFYPEER,?false);?// ????curl_setopt($ch,?CURLOPT_SSL_VERIFYHOST,?false);?// ????//設(shè)置header ????curl_setopt($ch,?CURLOPT_HEADER,?false); ????//要求結(jié)果為字符串且輸出到屏幕上 ????curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?true); ????if?('post'?==?$type)?{ ????????curl_setopt($ch,?CURLOPT_POST,?1);?//開(kāi)啟POST ????????curl_setopt($ch,?CURLOPT_POSTFIELDS,?$post_data);?//POST數(shù)據(jù) ????} ????$output?=?curl_exec($ch); ????curl_close($ch); ????return?$output;?//返回或者顯示結(jié)果 }

相關(guān)文章教程推薦:yii教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享