顯示具有 [PHP] 標籤的文章。 顯示所有文章
顯示具有 [PHP] 標籤的文章。 顯示所有文章

2019年5月29日 星期三

[PHP]簡易爬蟲

這陣子一直遇到一些資訊需要固定去某些網站上擷取下來查看,但每次都要開瀏覽器去點及時在是有些麻煩,突然想到大家不是都說網路爬蟲,加上目前都在寫PHP得程式,就嘗試寫一支來試試看好了。

透過google大神搜尋了一下,知道了PHP中的CRUL函數可以幫我完成這項任務,因此寫了一點東西出來,雖然可以順利爬到資了,但還是要透過一些工具來解析結果,但今天這裡就不說解析那部份(太麻煩了,下次再說)。

網站傳輸還是要分清楚GET跟POST這些基本觀念,否則撰寫網頁時真的會常常不知到資料去哪了!!!

今天範例只是可以順利取回該網站的原始碼資訊(爬蟲就是爬這個而已)。
這個範例是我比較常使用的方式因此直接寫出來分享如下

$url = "目標網址";
$data_array = array(需要的參數);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
//文件方式回傳,而不是輸出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data_array));
$output = curl_exec($ch);
curl_close($ch);
echo $output;


其中的目標網址取得方式我個人會先去了解該網站的運行方式,
有些是我們看到的網址列上面的東西就是我們需要的網址,
但現在框架這麼多,又有好用的AJAX,所以我們都知道,搞不好好東西都是才在這邊喔~~~
至於怎麼看出這個資訊,相信需要撰寫爬蟲的夥伴們,我們心照不宣,今天就不多說廢話了~~

雖然我個人有偷懶,把這個麼多行的程式寫成一支物件,在到處使用中~~


2016年6月1日 星期三

[php]檢查Funcation是否已存在 function_exists

設計function時,有時會可能因為是維護別人的系統因此不知道名稱是否已經有被使用過了或是在已經使用了自己卻不知道。
造成出現錯誤,當然找出原本的function是一個比較根源的修正。
此外為了避免這種錯誤發生,畢竟有時是在不同程式宣告使用的。
所以在賺寫function前可以先加上一個判斷

function_exists

這個方法可以幫我們判斷function是否已存在。
我個人的基礎使用反例如下

if(!function_exists('myfunction')){
    function myfunction(){
         alert('自訂方法');
    }
}


如此依來可以先判斷是否存在再去寫新的方法。
如有相同名稱,就不會產生我們新寫的function了。

2016年1月28日 星期四

[PHP] 程式暫停

很多人在做上傳檔案時會避免檔案彼此覆蓋,而將上傳的檔案進行更名的動作。
最常見的就是利用當時的系統時間進行檔案名稱更新。
當然一次一個檔案這樣做當然是沒有問題的。
但是若系統大量複製的話,有一定機率會在同一秒完成多份檔案的複製(設備總是要越來越快)。
個人在此時會利用到sleep這個指令。
他可以讓系統強制等待。
sleep(1); //強制等待一秒。
等待一秒後可能有機會再次降低檔案覆蓋問題。
等待勇者測試。

2015年12月30日 星期三

[PHP]取得當月份的第一天與最後一天

取得當月份的第一天與最後一天
$month_start = date('Ym01 00:00:00'); //本月第一天 
$month_end = strtotime($month_start);
$month_end = strtotime('+1 month -1 days', $month_end); 
$month_end = date("Ymd 00:00:00", $month_end);  //本月最後一天

使用原理為將日期透過strtotime進行轉換後,
再加上一個月的時間並減一天。
則剛好等於當月的最後一天。



[人生分享]教育訓練的兩極化

教育訓練的一個成長的過程,這句話相信人人都聽說過,而訓練最後一階段就是訓練者放手,被訓練者獨力完成所有任務,甚至是獨立判斷與進行,並達到預期結果,而這樣的過程後就會出現被訓練的學員們,慢慢的技能會超過訓練師,此時就會有兩種極端的表現是出現。 一、給予訓練師的基本尊重 二、認定訓練...