這邊說明如何用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爬蟲的概念

寫網頁時常常會需要判斷現在正在執行哪一個網頁
例如選單需要再現在的網頁反白
或是標題<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變數回去也可以
增加實用性

網站基本就是HTML、CSS與Javascript的呈現

不管用任何程式當後端處理

最後也都是輸出HTML

所以基本是一樣的概念。

 

選擇PHP做網站後端的程式語言的優勢是什麼?

我認為是使用者多

使用者多代表資源多

也是有問題你google的到答案

w3techs上面統計目前PHP市佔率79.2%

PHP網頁程式市佔率
PHP網頁程式市佔率

使用者多即是優勢

也代表程式語言會有持續的更新

沒人用的程式自然會被淘汰

像是wordpress等網頁也是使用php作為程式

而架占空間基本都是使用cpanel做管理

裡面都會有php給你使用的

 

 

打算用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個檔案就好