php判斷設備
1. 如何使用php實時監控linux伺服器的cpu,內存,硬碟信息
1,Linux下可以在/proc/cpuinfo中看到每個cpu的詳細信息。但是對於雙核的cpu,在cpuinfo中會看到兩個cpu。常常會讓人誤以為是兩個單核的cpu。
其實應該通過Physical Processor ID來區分單核和雙核。而Physical Processor ID可以從cpuinfo或者dmesg中找到. flags 如果有 ht 說明支持超線程技術 判斷物理CPU的個數可以查看physical id 的值,相同則為同一個物理CPU
2,查看內存大小:
cat /proc/meminfo |grep MemTotal
3,其他一些可以查看詳細linux系統信息的命令和方法:
uname -a # 查看內核/操作系統/CPU信息的linux系統信息命令
head -n 1 /etc/issue # 查看操作系統版本,是數字1不是字母L
cat /proc/cpuinfo # 查看CPU信息的linux系統信息命令
hostname # 查看計算機名的linux系統信息命令
lspci -tv # 列出所有PCI設備
lsusb -tv # 列出所有USB設備的linux系統信息命令
lsmod # 列出載入的內核模塊
env # 查看環境變數資源
free -m # 查看內存使用量和交換區使用量
df -h # 查看各分區使用情況
-sh # 查看指定目錄的大小
grep MemTotal /proc/meminfo # 查看內存總量
grep MemFree /proc/meminfo # 查看空閑內存量
uptime # 查看系統運行時間、用戶數、負載
cat /proc/loadavg # 查看系統負載磁碟和分區
mount | column -t # 查看掛接的分區狀態
fdisk -l # 查看所有分區
swapon -s # 查看所有交換分區
hdparm -i /dev/hda # 查看磁碟參數(僅適用於IDE設備)
dmesg | grep IDE # 查看啟動時IDE設備檢測狀況網路
ifconfig # 查看所有網路介面的屬性
iptables -L # 查看防火牆設置
route -n # 查看路由表
netstat -lntp # 查看所有監聽埠
netstat -antp # 查看所有已經建立的連接
netstat -s # 查看網路統計信息進程
ps -ef # 查看所有進程
top # 實時顯示進程狀態用戶
w # 查看活動用戶
id # 查看指定用戶信息
last # 查看用戶登錄日誌
cut -d: -f1 /etc/passwd # 查看系統所有用戶
cut -d: -f1 /etc/group # 查看系統所有組
crontab -l # 查看當前用戶的計劃任務服務
chkconfig –list # 列出所有系統服務
chkconfig –list | grep on # 列出所有啟動的系統服務程序
rpm -qa # 查看所有安裝的軟體包
cat /proc/cpuinfo :查看CPU相關參數的linux系統命令
cat /proc/partitions :查看linux硬碟和分區信息的系統信息命令
cat /proc/meminfo :查看linux系統內存信息的linux系統命令
cat /proc/version :查看版本,類似uname -r
cat /proc/ioports :查看設備io埠
cat /proc/interrupts :查看中斷
cat /proc/pci :查看pci設備的信息
cat /proc/swaps :查看所有swap分區的信息
2. 怎麼讓網站自動識別設備,自動跳轉wap頁面
自動識別跳轉,主要有以下幾種方法可以嘗試:
1、在網站head標簽里加跳轉語句
要實現網站根據訪問設備自動識別展示手機站或PC站這個功能,需要以下幾個步驟:
(1)、你得有一個PC端,在電腦上訪問的官方網站,比如:www..com。
(2)、你需要重新製作一個移動端的手機網站,比如:m..com。
(3)、在PC端的網站上加上一段代碼,每個頁面都需要加上,放在PC端網站head標簽裡面,代碼如下:
//平台、設備和操作系統
var system = {
win: false,
mac: false,
xll: false
};
//檢測平台
var p = navigator.platform;
system.win = p.indexOf(「Win」) == 0;
system.mac = p.indexOf(「Mac」) == 0;
system.x11 = (p == 「X11″) || (p.indexOf(「Linux」) == 0);
//跳轉語句
if (!(system.win || system.mac || system.xll)) {//轉向電腦界面
window.location.href = 「http://m..com」;
}
(4)、進入域名解析系統,做一個別名cname解析,比如:你手機網站製作公司給的地址123.域名.com解析到m..com域名解析系統。
2、根據移動終端和瀏覽器版本信息判定的語法
還有一些站長或SEO可能會考慮到移動終端的版本和瀏覽器版本信息,對此,肥貓科技也為大家整理了一段比較有效的代碼,如下所示:
<script type="text/javascript">
var browser={
versions:function(){
var u = navigator.userAgent, app = navigator.appVersion;
return {//移動終端瀏覽器版本信息
trident: u.indexOf('Trident') > -1, //IE內核
presto: u.indexOf('Presto') > -1, //opera內核
webKit: u.indexOf('AppleWebKit') > -1, //蘋果、谷歌內核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐內核
mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/), //是否為移動終端
ios: !!u.match(/i[^;]+;( U;)? CPU.+Mac OS X/), //ios終端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android終端或者uc瀏覽器
iPhone: u.indexOf('iPhone') > -1 || (u.indexOf('Mac') > -1 && u.indexOf('Macintosh') < 0), //是否為iPhone或者QQHD瀏覽器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web應該程序,沒有頭部與底部
};
}(),
language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
if (browser.versions.ios||browser.versions.android||browser.versions.iPhone||browser.versions.iPad) {
self.location=http://www..com;
}
</script>
3、自動識別手機頁面、iPad頁面和wap頁面
可以根據不同的終端類型適當的改變正則表達式,這段代碼添加到需要識別的網頁,會根據客戶端的類型自動跳轉到手機頁、平板頁或其他移動設備頁面,非常的靈活!
<script type="text/javascript">
if(/AppleWebKit.*mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){
if(window.location.href.indexOf("?mobile")<0){
try{
if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){
window.location.href="http://www..com/m";
}else if(/iPad/i.test(navigator.userAgent)){
window.location.href="http://www..com/pad";
}else{
window.location.href="http://www..com/wap"
}
}catch(e){}
}
}
</script>
4、使用PHP語言來識別
對於一些精通PHP語言的博友來說,也可以通過PHP語法來實現,比如以下的寫法:
//設定Mobile的定義
$mobileAgent = array("iphone", "ipod", "ipad", "android", "mobile", "blackberry", "webos", "incognito", "webmate", "bada", "nokia", "lg", "ucweb", "skyfire");
//讀取用戶的瀏覽器資料
$browser = $_SERVER['HTTP_USER_AGENT'];
$isMobile = false;
//檢查開始
foreach($mobileAgent as $search){
if(stristr($browser,$search)!=false){
$isMobile = true;
//echo $search;
//程式碼(轉址)
header("Location: http://www..com/m/index.html");
//停止運行程序
exit;
}
}
?>
5、做個自動識別的效果
經過多次測試,我們也可以做個自動識別的效果,方法很簡單,在你需要自動跳轉的頁面加入以下代碼:
<script type="text/javascript">
var mobileAgent = new Array("iphone", "ipod", "ipad", "android", "mobile", "blackberry", "webos", "incognito", "webmate", "bada", "nokia", "lg", "ucweb", "skyfire");
var browser = navigator.userAgent.toLowerCase();
var isMobile = false;
for (var i=0; i<mobileAgent.length; i++){ if (browser.indexOf(mobileAgent[i])!=-1){ isMobile = true;
//alert(mobileAgent[i]);
location.href = 'http://siteapp..com/webapp/mahaixiang.cn#m/http://mahaixiang.cn/';
break; } }
</script>
6、自動識別移動端適配跳轉網址的代碼
手機版的網站需要簡單,以文字為主,才能很好的兼容,可以在網站的首頁設置一個程序來判斷用戶是手機端還是電腦,如果是手機端,直接中轉到手機端,如果是電腦端,直接中轉到電腦端(大家也可以使用網路提高的網路移動搜索開放適配服務。
對此,大家可以在網站的首頁插入入下代碼:
<script type="text/javascript">
function browserRedirect() {
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if (!(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) ){
window.location.href=B頁面;
}
}
browserRedirect();
</script>
<script type="text/javascript">uaredirect("<A href='http://www..com/wap/","http://www..com/index.html");http://www..com/wap/","http://www..com/index.html");
</script>
在肥貓科技看來,PC版網頁自動識別手機客戶端並跳轉,用js進行判斷是否手機客戶端進行跳轉最好,特別是靜態網頁,把這個過程通過js的方式放在用戶客戶端執行,可以大大減少伺服器端額外處理的壓力,但是有時需要通過在伺服器端進行判斷的情況除外。
3. php判斷設備是否是手機還是平板的方法
<?php
//判斷訪問來源設備
public function visitfrom(){
//獲取USER AGENT
$agent = strtolower($_SERVER['HTTP_USER_AGENT']);
//分析數據
$is_pc = (strpos($agent, 'windows nt')) ? true : false;
$is_iphone = (strpos($agent, 'iphone')) ? true : false;
$is_ipad = (strpos($agent, 'ipad')) ? true : false;
$is_android = (strpos($agent, 'android')) ? true : false;
//輸出數據
if($is_pc){
echo "這是PC";
}
if($is_iphone){
echo "這是iPhone";
}
if($is_ipad){
echo "這是iPad";
}
if($is_android){
echo "這是Android";
}
}
?>