Blame | Last modification | View Log | RSS feed
<?php#指派命名空間namespace qbpwcf;#匯入外部套件include("../allInOne.php");#提示目前正在測試的部分echo"<hr>catchWebContent::wget - testCase 1<p>";/*#涵式說明:#設定檢視該網頁時預設的編碼#必填的參數:#$conf["encodingName"]="big5";#為網頁顯示的編碼的名稱.#例如:"utf-8","big5"#header::htmlEncoding($conf);#unset($conf);#涵式說明:#抓取的特定網頁的某段內容#回傳的結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息陣列.#$result["webContent"]["lineCount"],爲總共有機行原始碼。#$result["webContent"]["full"],爲抓取的全部網頁程式碼#$result["webContent"][i],爲第i+1行的程式碼#必填的參數:$conf["loadingPotision"]="http://www.nmp.gov.tw/news/list.php";#要抓取的網頁網址#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑.$conf["fileArgu"]=__FILE__;#可省略的參數:#$conf["startLineNum"]="233";#從第幾行開始擷取,預設爲從第1行(第0個元素)。#$conf["endLineNum"]="273";#到第幾行結束截取,預設爲從最後一行(最後一個元素)。#$conf["processString"]="true";#爲是否要變更特定字串內容,預設爲false,不做變更,若設爲"true"則爲要進行處理字串的功能。#$conf["selectedCharacter"]=array("width='90%'","width='80%'","width='20%'","nmpnews.php?","<a","border='0'");#爲被選擇要處理的字串/字元,須爲陣列值。#若不設定則預設爲要將這些字串作替換(" ","href","iframe","<",">","<a","/>",";","/","=","#",".","'","$","%","&","|")。#$conf["changeTo"]=array("","","","http://www.nmp.gov.tw/nmpnews.php?","<a target = _blank ","border=1px");#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。#$conf["changeCharSet"],字元陣列,轉換全文編碼,預設不使用,$conf["changeCharSet"][0]為原始編碼,$conf["changeCharSet"][0]為新的編碼.#$conf["changeCharSet"]=array("big5","utf-8");$wget=catchWebContent::wget($conf);unset($conf);var_dump($wget);*/#提示目前正在測試的部分echo"<hr>catchWebContent::wget - testCase 2<p>";/*#涵式說明:#抓取的特定網頁的某段內容#回傳的結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息陣列.#$result["function"],函數名稱.#$result["oriWebContent"]["full"],原始檔案的完整內容.#$result["oriWebContent"]["byLine"],用陣列儲存的原始檔案逐行內容.#$result["oriWebContent"]["lineCount"],原始檔案的總共行數.#$result["webContent"]["lineCount"],爲總共有機行原始碼。#$result["webContent"]["full"],為檔案的完整內容,爲抓取的全部網頁程式碼#$result["webContent"][i],爲第i+1行的程式碼#必填的參數:$conf["loadingPotision"]="https://tw.yahoo.com/";#要抓取的網頁網址#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑.$conf["fileArgu"]=__FILE__;#可省略的參數:#$conf["startLineNum"]="";#從第幾行開始擷取,預設爲從第1行(第0個元素)。#$conf["endLineNum"]="";#到第幾行結束截取,預設爲從最後一行(最後一個元素)。#$conf["processString"]="";#爲是否要變更特定字串內容,預設爲false,不做變更,若設爲"true"則爲要進行處理字串的功能。#$conf["selectedCharacter"]=array("");#爲被選擇要處理的字串/字元,須爲陣列值。#若不設定則預設爲要將這些字串作替換(" ","href","iframe","<",">","<a","/>",";","/","=","#",".","'","$","%","&","|")。#$conf["changeTo"]="";#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。var_dump(catchWebContent::wget($conf));unset($conf);*/#提示目前正在測試的部分echo"<hr>catchWebContent::toHtml - testCase 1<p>";/*#函數說明:#將特定網址的網頁內容儲存成html檔案#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函式名稱.#$result["html"],取得的網頁檔位置.#必填參數:#$conf["saveLocation"],字串,下載好的網頁要儲存到哪邊$conf["saveLocation"]="catchWebContentT/catchWebContent::toHtml";#$conf["webPageLocation"],字串,要下載的網頁目錄位置與檔案名稱.ex:「function/about.php」$conf["webPageLocation"]="~qbpwcf/";#$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑.$conf["fileArgu"]=__FILE__;#可省略參數:#$conf["type"],字串,網頁的協定,預設為"http",可以用的還有"https".$conf["type"]="https";#$conf["webHostAddressOrDNS"],字串,網頁所處的IP或DNS,預設為"127.0.0.1".$conf["webHostAddressOrDNS"]="127.0.0.1";#$conf["port"],字串,要使用的port,預設"80",一般來說http為80,https為443.$conf["port"]="443";var_dump(catchWebContent::toHtml($conf));unset($conf);*/#提示目前正在測試的部分echo"<hr>catchWebContent::getFullWeb - testCase 1<p>";/*#涵式說明:#抓取的特定網頁的某段內容#回傳的結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息陣列.#$result["function"],函數名稱.#$result["webContent"]["lineCount"],爲總共有機行原始碼。#$result["webContent"]["full"],爲抓取的全部網頁程式碼#$result["webContent"][i],爲第i+1行的程式碼#必填的參數:#$conf["loadingPotision"],字串,要抓取的網頁網址$conf["loadingPotision"]="https://start.fedoraproject.org/";#要抓取的網頁網址#可省略的參數:#$conf["startLineNum"],從第幾行開始擷取,預設爲從第1行(第0個元素)。#$conf["startLineNum"]="";#$conf["endLineNum"],到第幾行結束截取,預設爲從最後一行(最後一個元素)。#$conf["endLineNum"]="";#$conf["processString"],爲是否要變更特定字串內容,預設爲false,不做變更,若設爲"true"則爲要進行處理字串的功能。#$conf["processString"]="";#$conf["selectedCharacter"],d爲被選擇要處理的字串/字元,須爲陣列值。#$conf["selectedCharacter"]=array("");#若不設定則預設爲要將這些字串作替換(" ","href","iframe","<",">","<a","/>",";","/","=","#",".","'","$","%","&","|")。#$conf["changeTo"],爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。#$conf["changeTo"]=array("");#$conf["changeCharSet"],字元陣列,轉換全文編碼,預設不使用,$conf["changeCharSet"][0]為原始編碼,$conf["changeCharSet"][0]為新的編碼.#$conf["changeCharSet"]=array("big5","utf-8");#備註:#$conf["changeCharSet"]參數沒有效果.#有些網站會無法透過此方法取得網站內容.#參考資料來源:#iconv用法 => http://php.net/manual/en/function.iconv.phpvar_dump(catchWebContent::getFullWeb($conf));unset($conf);*/#說明要測試的案例echo"<hr>catchWebContent::nativeMulti - testCase 1<br>";/*#函數說明:#php內建的curl方法#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息.#$result["function"],當前執行的函數名稱.#$result["content"][$i]["info"],第$i+1個要求的回應資訊.#$result["content"][$i]["res"],第$i+1個要求的回應.#必填參數:#$conf["url"],字串陣列,有哪些網址要拜訪.$conf["url"]=array("https://tw.yahoo.com","https://www.google.com.tw","https://start.fedoraproject.org/","https://127.0.0.1/~qbpwcf");#可省略的參數:#$conf["opts"],一維字串陣列,要設定的curl連線參數,元素的key為參數的名稱,切記要為long形態(沒有""框住的文字),元素的value為參數的數值內容.#$conf["opts"];#參考資料:#curl_multi_ini(多執行緒執行curl)=>http://php.net/manual/en/function.curl-multi-init.php#備註:#建構中...$native=catchWebContent::nativeMulti($conf);unset($conf);#如果執行失敗if($native["status"]==="false"){#印出訊息var_dump($native);#終止程式exit;}#if end#印出取得的資訊var_dump($native);*//*#說明要測試的案例echo"<hr>catchWebContent::curlCmd - testCase 1<br>";#函式說明:#運行curl cmd#回傳結果:#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.#$result["error"],錯誤訊息陣列.#$result["function"],當前執行的函式名稱.#$result["content"],取得的回應內容.#必填參數:#$conf["url"],字串,目標url.$conf["url"]="https://www.google.com";#$conf["fileArgu"],字串,變數__FILE__的內容.$conf["fileArgu"]=__FILE__;#可省略參數:#$conf["header"],字串陣列,要傳送的header.$conf["header"]=array("lib:qbpwcf");#$conf["allowAnySSLcertificate"],字串,是否允許不可信任的SSL憑證.#$conf["allowAnySSLcertificate"]="";#$conf["postVar"],字串陣列,每個要傳送的post變數名稱(陣列的key值)與數值.$conf["postVar"]=array("a"=>"b","c"=>"d");#備註:#僅能在命令列下執行.$curlCmd=catchWebContent::curlCmd($conf);unset($conf);#如果執行失敗if($curlCmd["status"]==="false"){#印出訊息var_dump($curlCmd);#終止程式exit;}#if end#印出結果var_dump($curlCmd);*/?>