- Details
- Written by Super User
- Category: PHP
- Hits: 1131
這邊說明如何用PHP網路爬蟲將資料抓下來
一般網路上大部分都是教用Python套件
但其實不需要
爬蟲概念說明
幾本上就是把網路上你要的資料抓下來
最簡單的就是整個網頁原始碼抓下來
但是會包含你不需要的資料
這時就是再用文字處理去切掉你不要的部分
最後將你要的存起來
我的步驟
1.將資料抓下來
2.文字處理留下要的部分
3.將資料存進SQL(或其他地方)
1.將資料抓下來
這邊提供一段程式碼
使用file_get_contents()取得網頁後存到檔案
之後用fopen寫入檔案
裡面的usleep($delaytime);是為了避免使用迴圈抓網頁時太頻繁被ban
function spider($filename) {
$html = file_get_contents("https://".$filename."");
$fp = fopen("./temp/".$filename.".html",'w');
if(!$fp)echo "寫入錯誤<br>";
flock($fp,LOCK_EX);
fwrite($fp,$html,strlen($html) );
flock($fp,LOCK_UN);
fclose($fp);
echo "寫入成功".filesize("./temp/".$filename.".html")."<br>";
$delaytime=rand(50,420);
usleep($delaytime);
}
2.文字處理留下要的部分
使用 explode($str ,$html);切出要的部分
需要使用一些判斷式子去處理文字檔案
可能要切蠻多次的
$html = file_get_contents("../temp/".$filename.".html");
$str = "</td><td class=\"R\">";
$temp = explode($str ,$html);
3.將資料存進SQL(或其他地方)
這邊我是將切完的資料先顯示出來到網頁上變成表格
確認沒問題後就可以加程式存到SQL
或是直接複製表格到excel也是個方式
以上就是PHP爬蟲的概念
- Details
- Written by Super User
- Category: PHP
- Hits: 1373
寫網頁時常常會需要判斷現在正在執行哪一個網頁
例如選單需要再現在的網頁反白
或是標題<title>需要依照不同的網頁產生變數
php那要ˋˋ如何做到呢?
可以使用$_SERVER['PHP_SELF']這個變數
他可以取得目前在執行的網頁檔案名稱
後面也會有副檔名
要去掉副檔名的話可以用
basename($_SERVER['PHP_SELF'],".php")
這邊使用的簡ˋ單範例
判斷在哪一頁後
//判斷在哪一頁
$file=(basename($_SERVER['PHP_SELF'],".php"));
//取得標題
function get_title($page) {
switch ($page) {
case "index":
return "首頁";
break;
case "stage":
return "關卡資料 - 貓咪大戰爭 攻略網";
break;
case "log":
return "更新進度";
break;
default:
return "貓咪大戰爭 攻略網";
break;
}
}
在網頁中使用時呼叫涵式
<!DOCTYPE html>
<html>
<head>
<title><?echo get_title($file);?></title>
就能依照網頁得到不同的title
當然你想在涵式內增加呼膠其他涵是,再return變數回去也可以
增加實用性
- Details
- Written by Super User
- Category: PHP
- Hits: 1337
網站基本就是HTML、CSS與Javascript的呈現
不管用任何程式當後端處理
最後也都是輸出HTML
所以基本是一樣的概念。
選擇PHP做網站後端的程式語言的優勢是什麼?
我認為是使用者多
使用者多代表資源多
也是有問題你google的到答案
在w3techs上面統計目前PHP市佔率79.2%
使用者多即是優勢
也代表程式語言會有持續的更新
沒人用的程式自然會被淘汰
像是wordpress等網頁也是使用php作為程式
而架占空間基本都是使用cpanel做管理
裡面都會有php給你使用的
- Details
- Written by Super User
- Category: PHP
- Hits: 1262
打算用PHP寫網頁
一開始先隨意簡單就好
然後再慢慢改複雜
打算用include把網頁包進來
然後中間再依照各個網頁調整程式碼
<?
include('./func/function.php');//涵式
include('./template/header.html');//頁首
include('./menu.php');//選單
include('./template/footer.html');//頁尾
?>
大概像這樣
function.php放常用的涵式
header.html放頁首
menu.php用來顯示選單
footer.html放頁尾
需要使用新涵式時只有寫在function.php就可以了
而頁首、頁尾都是同樣的型態,
所以也是只要改2個檔案就好