是否存在區別
is_dir :存在資料夾,返回true
if_file :存在檔案,返回true
file_exists = is_dir + is_file 可以判斷目錄存在.和檔案存在
執行效率非常低
類是否存在 class_exists()
方法是否存在function_exists(),存在就把時區傳遞過去,先設定乙個時間時間,
然後從配置檔案中取出配置檔案的時間.賦值給他.
如果沒有配置過,丟擲異常,把剛才時區傳遞過去
if (function_exists('date_default_timezone_set'))
catch (exception $e){}
date_default_timezone_set($timezone);}
php指令碼檔案在讀到include()語句時,才將它包含的檔案讀取進來。這種方式,可以把程式執行時的流程簡單化。
php.ini配置檔案,開啟錯誤資訊顯示 ,
display_errors 修改為on
require(先載入)經常寫在index.php檔案最開頭.fatal致命錯誤,停止在這個地方,不再往下執行
incluce (後載入)在用到時載入,warning警告錯誤,繼續執行
_once字尾已載入的不載入
constant 不變的,固定的,常量
定義常量
const與define的區別
在類中定義常量.使用const,(不可以在if中,不可以表示式(只能是靜態標量),不能加true分大小寫,速度快)
在類外面定義全域性常量.使用define可以在if中,可以使用表示式,define('foo', 'bar', true); 加true不分大小寫,編譯速度慢,
php中的時間
var_dump(microtime(true));//浮點型+毫秒float(1458871513.87) 微小時間,加true=time()加上2為小數,(8百7十毫秒)
var_dump(time());//10位整形時間戳 int(1458871513)
var_dump(microtime());//字串型別 string(21) "0.53907900 1458871359" 以0開頭的字串型別,直接使用.表示2023年開始,還不到1秒
var_dump(date('y-m-d h:i:s',62.8888)); //字串型別 string(19) "1970-01-01 00:01:02" 2023年後1分鐘,2秒
var_dump(date('y-m-d h:i:s',0999)); //字串型別 string(19) "1970-01-01 00:00:00" 2023年後 0秒 //只要是0開頭,表示沒有時間
var_dump(date('y-m-d h:i:s',microtime())); // 字串型別 string(19) "1970-01-01 00:00:00" 2023年後 0秒 //只要是0開頭,表示沒有時間
mysql中的時間
datetime ,日期+時間
日期和時間的組合。支援的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'
timestamp,還有20年到期,mysql 4.1和5.1不支援
時間戳。範圍是'1970-01-01 00:00:00'到2023年。
*************************
獲取當前url位址,(去除主機位址外,從反斜槓開始到最後的那部分)
如:$_server['request_uri'] 獲取到的是 /hello.php
在apache下
http_x_rewrite_url的重寫url.都是回到主機位址.所以都是空
request_uri請求的url,如果是僅僅有主機就是反斜槓(/),如果還有就是反斜槓到最後(/index.php)
當前url:
當前url:index.php
當前url:
iis環境下:
apache環境下:
當前url:index.php
iis環境下:
apache環境下:
獲取url位址的值
query_string 請求的字串.取出url中?問號後面的字串(不包括?)
request_url 請求的事主機後面的值.(包括 /)
php_self 當前執行指令碼的檔名.
http://localhost/aaa/ (開啟aaa中的index.php)
獲取主機位址
如:$_server['
'] 獲取到的是 127.0.0.1和localhost
獲取翻牆主機位址
獲取當前主機位址
$_server['http_host'],獲取結果包含了埠
獲取當前服務名,獲取結果不包含埠
$_server['server_name'].($_server['server_port']=='80' ? '' : ':'.$_server['server_port'])
缺省會輸出httpd.conf中的servername的值
有別名的時候,雖然訪問的url是別名.但是返回的還是servername的值
servername mimiz.cn
serveralias www.mimiz.cn
客戶端訪問網域名稱www.mimiz.cn
_server["http_host"] 輸出 www.mimiz.cn
_server["server_name"] 輸出 mimiz.cn
應盡量使用_server["http_host"] ,比較保險和可靠。
如果是公司區域網,或者翻牆訪問,跳轉的時候.需要獲取(過去的老的,forwarded那個主機位址)否則永遠都是中間那台伺服器的位址.
如果存在老的位址,就使用.否則就使用http_host位址,如果也沒有使用server_name獲取主機位址,拼接埠,如果是80拼接空,否則拼接埠
HBase篇 1 設計與應用場景
每日五分鐘搞定大資料 系列,hbase第一篇 講完了zookeeper,接下來我們來說下google三駕馬車之一bigtable的開源實現 hbase,要講得內容如下 1.寫密集型應用,每天寫入量巨大,而相對讀數量較小的應用2.不需要複雜查詢條件來查詢資料的應用使用rowkey,單條記錄或者小範圍的...
Redis應用場景
redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。redis常用資料型別 redis最為常用的資料型別主要有以下五種 在具體描述這幾種資料型別之...
Redis應用場景
redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在如何把大象放進冰箱這樣的問題上,而是利用redis靈活多變的資料結構和資料操作,為不同的大象構建不同的冰箱。redis常用資料型別 redis最為常用的資料型別主要有以下五種 在具體描述這幾種資料型別之...