2018年8月6日 星期一

分享一些不錯的PHP小函式

1. 檢查 參數是否存在 與 是否為空
function checkRequest($Request, $checkArray)
{
    foreach ($checkArray as $key => $value) {
        if (array_key_exists($value, $Request) == false && empty($Request[$value])) {
            return false;
        }
    }
    return true;
}
==================
時常要校驗請求的參數是否有缺少或者是不為空值,可以利用  array_key_exists  與  empty 快速篩選出結果,就可以不用寫一大堆 if else ......

2. 調用Curl Post 
    本小魯前幾天遇到一個 會被導向301的問題,所以在
//函数中加入下面这条语句 curl抓取页面时遇到重定向的解决方法
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

/**
* [my_curl 外部連線 http]
* @param [string] $url [description]
* @param [array] $post [description]
* @return [string] $result [description]
*/
function curlPost($url, $post)
{

// echo $url . '<hr>';
// echo "<pre>";
// print_r($post);
// echo "</pre>";
// echo "<hr>";
// ====================
//初始化curl
$ch = curl_init();
//永遠抓最新
$header[] = "Cache-Control: no-cache";
$header[] = "Pragma: no-cache";
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
//等待時間
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
//抓取指定網頁
curl_setopt($ch, CURLOPT_URL, $url);
//post提交方式
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
//设置header
curl_setopt($ch, CURLOPT_HEADER, 0);
//要求结果為字串且输出到屏幕上
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//函数中加入下面这条语句 curl抓取页面时遇到重定向的解决方法
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode != 200) {
$result = "";
}
curl_close($ch);
return $result;
}


沒有留言:

拯救老電腦

 Sempron 3850 Socket AM1入門四核處理器 2014 8ram  作業系統 windows 10 1904 評論: 八年的核心,其他的故障電腦拆解零組件都是拼裝. 整體使用上,可以基本文書,瀏覽網站,聽音樂等等都可以接受的。 下次再來繼續搞更多..