應用場景之 區別篇

2021-07-10 05:02:43 字數 3884 閱讀 2046

是否存在區別

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最為常用的資料型別主要有以下五種 在具體描述這幾種資料型別之...