php基礎(chǔ)

phpize
內(nèi)存用來存儲運行的程序及數(shù)據(jù)懂鸵。變量名及變量值在內(nèi)存的不同位置偏螺。

image.png

內(nèi)存組成:
棧區(qū):空間小,運行速度快匆光,存儲變量名套像、函數(shù)名、常量名等终息。
堆區(qū):空間大夺巩,運行速度慢,一般存儲復(fù)雜數(shù)據(jù)(數(shù)組周崭、對象)
全局?jǐn)?shù)據(jù)區(qū):
存儲變量值柳譬、常量值等
代碼區(qū):
存儲函數(shù)、方法续镇。

案例:a=100 創(chuàng)建變量時 將變量值100存儲在全局?jǐn)?shù)據(jù)區(qū)的變量區(qū)(產(chǎn)生存儲地址oxFF)美澳, 在棧區(qū)開辟空間,存儲變量名a摸航,將變量值的存儲地址存儲在棧區(qū)的變量名中制跟。
讀取變量:
$a—棧區(qū)拿到變量的在變量區(qū)的存儲地址oxFF---去對應(yīng)地址讀取值

echo語句
輸出字符串、變量及表達(dá)式

可以同時輸出多個變量及字符串忙厌。

image.png

print語句
可以輸出字符串及變量及表達(dá)式
與echo語句的區(qū)別為:
print不支持 同輸出多個字符串及變量凫岖。
為語言結(jié)構(gòu),不是函數(shù)逢净。
var_dump()

輸出一個或者多個變量類型哥放,長度及值一般用于打印復(fù)雜變量爹土,如數(shù)組甥雕。

image.png

print_r()

輸出變量的值。一般用于打印變量胀茵。打印數(shù)組相較于var_dump清晰

image.png

刪除變量

unset($var);
刪除變量名及值之間的對應(yīng)關(guān)系社露。 變成未定義變量
變量名及變量值不會立即消失,PHP有專門的垃圾回收機(jī)制處理琼娘。

引用傳遞

地址傳遞峭弟。
b =&a;
&取地址符號附鸽,將a變量的地址賦值給b。
二者指向同一地址
刪除一個變量瞒瘸,另外一個不受影響:

image.png

1)$_SERVER
是一個數(shù)組坷备,保存執(zhí)行環(huán)境及服務(wù)器的信息。
2)$_GET
3)$_POST
4)$_REQUEST
1)語法
define(常量名,常量值,TRUE/FALSE);
1)注意
常量默認(rèn)區(qū)分大小寫情臭。
常量名推薦全部字母大寫
常量不可以重復(fù)定義及修改數(shù)據(jù)省撑。
設(shè)置第三個參數(shù)為true,常量不區(qū)分大小寫
2)const 常量名=常量值
3)constant()
可以獲取對應(yīng)的(特殊常量名)常量值。
1)get_defined_constants()
獲取當(dāng)前腳本執(zhí)行中全部已經(jīng)定義的常量俯在。返回為數(shù)組竟秫。包括預(yù)定義常量及用戶定義的常量。
PHP_INT_MAX
PHP_INT_SIZE

魔術(shù)常量

它們的值隨著它們在代碼中的位置改變而改變
1)__DIR__
文件所在的目錄跷乐。

image.png

1)__LINE__
獲取當(dāng)前的行號
image.png

1)__FILE__
獲取當(dāng)前執(zhí)行腳本的路徑及文件名肥败。
image.png

image.png

JS的數(shù)據(jù)類型:5基本(number, string, boolean, null, undefined ),1復(fù)雜(object)
特殊類型
1)null
為null的幾種情況:
變量未賦值 變量被刪除 變量被賦值為null
2)resource
資源型,為到第三方數(shù)據(jù)的引用(如成功的數(shù)據(jù)庫連接等)

進(jìn)制轉(zhuǎn)換函數(shù)

decimal:10進(jìn)制
binary:二進(jìn)制
octal:八進(jìn)制
hexdecimal:十六進(jìn)制
decbin(int 值):十進(jìn)制轉(zhuǎn)二進(jìn)制
decoct(int 值):十進(jìn)制轉(zhuǎn)八進(jìn)制
dechex(int 值):十進(jìn)制轉(zhuǎn)16進(jìn)制
bindec(string 值):
octdec(string 值)
hexdec(string 值)

浮點型類型

l 小數(shù)愕提。一般用float,double表示拙吉。
l 一般程序語言有單精度、雙精度之分(精度為小數(shù)的位數(shù))揪荣。PHP只實現(xiàn)了雙精度。
l 最多為14位有效數(shù)字往史,表示范圍為-1.810^-308---- 1.810^308
l 占據(jù)的空間為8字節(jié)仗颈。
0.123456 有效數(shù)字為6,小數(shù)位6位

1) 浮點型的表現(xiàn)形式

常用格式 1.2
科學(xué)計數(shù)法 1.234e2 eN表示10的N次方

2) isset()

變量未設(shè)置或者設(shè)置為null,返回false椎例。其余情況全部為true

3) empty()

判斷變量是否為空挨决。
邏輯判斷為false的變量,使用empty判斷订歪,返回true脖祈。

4) is_type系列函數(shù)

l is_int/is_integer 判斷是否是整型
l is_float/is_double/is_numeric(是否是數(shù)值型)
l is_string
l is_boolean/is_bool
l is_array
l is_null
l is_resource
返回值 為true或者false。

類型判斷與轉(zhuǎn)換

1. gettype()

獲取數(shù)據(jù)的類型名稱字符串刷晋。
返回的字符串的可能值為:
l boolean
l integer
l double
l string
l array
l object
l resource
l NULL

image.png

1.自動轉(zhuǎn)換
PHP本身為弱類型語言盖高,支持類型的自動轉(zhuǎn)換霎褐。
數(shù)據(jù)參與運算時怕吴,根據(jù)實際環(huán)境自動轉(zhuǎn)換類型參與運算。
如算術(shù)運算赖欣,為數(shù)值捏悬。
參與算術(shù)運算的數(shù)據(jù)為數(shù)值類型撞蚕。
轉(zhuǎn)換為數(shù)值類型的原則:

純數(shù)字組成的字符串轉(zhuǎn)換為相應(yīng)的數(shù)字
可以轉(zhuǎn)換為浮點型的字符,轉(zhuǎn)換為相應(yīng)的浮點數(shù)过牙。
不以數(shù)字開頭的字符串甥厦,轉(zhuǎn)換為0.包括’true’纺铭。
布爾型true轉(zhuǎn)換為1,false轉(zhuǎn)換為0.
自動轉(zhuǎn)換后不該變原始變量的數(shù)據(jù)類型刀疙,僅修改參與運算的類型

image.png

image.png

1.類型強(qiáng)制轉(zhuǎn)換
轉(zhuǎn)換原則:
與類型自動轉(zhuǎn)換原則一致舶赔。
(類型字符串)變量;
2.自動轉(zhuǎn)換及強(qiáng)制轉(zhuǎn)換比較
轉(zhuǎn)換之后庙洼,原始數(shù)據(jù)類型不發(fā)生轉(zhuǎn)換顿痪,只是數(shù)據(jù)參與運算的值發(fā)生改變
自動轉(zhuǎn)換(根據(jù)環(huán)境)的原則與強(qiáng)制轉(zhuǎn)換(人為轉(zhuǎn)換)的原則一致。
3.settype()
將變量設(shè)置為指定的類型油够。
settype($name,’類型字符串’)
返回值為true(成功時)或者false蚁袭。
會修改變量的值
算術(shù)運算符 > 比較運算符 > 邏輯運算符 > 賦值運算符
()可以改變運算的優(yōu)先級。
字符串連接符.字符串分隔符,

1)錯誤抑制符

放在表達(dá)式前石咬,忽略錯誤信息揩悄。
錯誤抑制符為@
可以放在變量、常量及函數(shù)的調(diào)用之前
die/exit(“提示”);

include與require區(qū)別

四個語言結(jié)構(gòu)鬼悠,不是函數(shù)
include與require區(qū)別:
include引入文件失敗删性,返回警告warning,后續(xù)代碼繼續(xù)執(zhí)行
require引入文件失敗焕窝,返回fatal error蹬挺,后續(xù)代碼不執(zhí)行
引入的文件為后續(xù)代碼必須使用的,建議require.
_once作用:
對于已經(jīng)載入文件它掂,不再進(jìn)行載入巴帮,避免函數(shù)的重復(fù)定義。

1.全局變量的生命周期
`全局變量的生命周期為腳本的執(zhí)行周期虐秋。`
2.局部變量的生命周期
`局部變量的生命周期:函數(shù)調(diào)用時創(chuàng)建榕茧,到函數(shù)調(diào)用結(jié)束時銷毀。
1)time()為10位整型數(shù)字客给。
2)date()
格式化時間戳用押。
date(格式字符串[,時間戳]);
最常用的格式為:Y-m-d H:i:s
其他格式:
image.png
`microtime()`
返回當(dāng)前的微秒數(shù)及時間戳字符串靶剑。
使用true參數(shù)時蜻拨,返回對應(yīng)的浮點數(shù)。通常用于生成口令桩引。
生成的令牌:12deb0c64b76dd259c2a451f058564a4
image.png

數(shù)學(xué)函數(shù)

1)max(),min()
分別返回最大值及最小值
2)abs()
返回絕對值
3)floor()
向下取整
4)ceil()
向上取整
5)round()
四舍五入
6)rand() 和 mt_rand()
返回隨機(jī)數(shù)
mt_rand生成的速度是rand的四倍多官觅。
7)pow(),sqrt()
power 冪次 pow(x,y)
sqrt:平方根
square 平方 root 根 sqrt

遞歸思想

1)本質(zhì)
函數(shù)內(nèi)部去調(diào)用函數(shù)本身。
2)遞歸兩要素
遞歸的出口阐污。結(jié)束遞歸調(diào)用
遞歸的調(diào)用點(入口):什么情況下函數(shù)開始調(diào)用本身休涤。
3)應(yīng)用:階乘
5! =54!=54321
n! =n
(n-1)!
1! = 1;
f(n)表示第n項的階乘功氨,
f(n)=n*f(n-1);
執(zhí)行時占用的空間比較大序苏。

image.png

迭代思想

5! =1*2*3*4*5
介紹
又稱遞推捷凄。
將已知條件作為迭代的原始值忱详,由原始值推出它的新值。再把這個新值當(dāng)成下一次的循環(huán)的原始值跺涤,再來推出下一個新值匈睁,以此類推。
執(zhí)行效率非常高桶错。
案例
使用迭代思想求解階乘

image.png

上傳文件錯誤代碼

image.png

以下三項可以在php.ini中修改.

upload_max_filesize //上傳允許的單文件的最大值
max_file_uploads  //上傳文件的允許最大數(shù)量
post_max_size    //上傳所有文件字節(jié)允許的最大值
image.png

對上傳文件擴(kuò)展名的判斷

image.png

image.png

pathinfo(文件名)
image.png

image.png

上傳文件類型的判斷(MIME)
利用php_fileinfo.dll對MIME類型進(jìn)行嚴(yán)格檢查:
開啟php_fileinfo.dll擴(kuò)展
$fs = finfo_open(FILEINFO_MIME_TYPE) // 可以理解為返回的是所有PHP支持的MIME類型
$mime = finfo_file($fs,上傳的臨時文件); //在$fs查詢中 上傳的臨時文件 的MIME,返回文件類型.

目錄名中文的處理

如: iconv(‘gbk’,’utf-8’,’你好’) ; //將”你好”由gbk轉(zhuǎn)為utf-8.
Unlink(文件路徑); //返回布爾

HTTP請求的構(gòu)成

構(gòu)成: 請求行,請求頭,[空白行],請求體


image.png

image.png

image.png

Host: 請求的主機(jī)名
Connect: 保持連接
User-Agent: 瀏覽器的相關(guān)信息航唆,會自動攜帶給服務(wù)器
Accept: 瀏覽器所能處理的數(shù)據(jù)的格式
Accept-Encoding: 瀏覽器所支持的壓縮格式
Accept-Language: 瀏覽器所支持的語言
If-Modified-Since: 用于詢問當(dāng)前所請求的內(nèi)容,自從上次是否有修改過

PHP擴(kuò)展:curl實現(xiàn)數(shù)據(jù)采集

1.采集
就是收集其他網(wǎng)站(網(wǎng)頁)上的信息院刁,并對其進(jìn)行“為我所用” 的處理糯钙!
這種處理比如:存入到數(shù)據(jù)庫,或保存為文件保存起來
2.Curl函數(shù):系統(tǒng)函數(shù)退腥,需要去打開php的模塊 extension=php_curl.dll
3.原理:

使用該函數(shù)任岸,模擬瀏覽器,根據(jù)http請求協(xié)議的格式發(fā)送請求狡刘,該函數(shù)能夠獲得服務(wù)器端返回的響應(yīng)信息

實現(xiàn)四步驟:

第一步:初始化CURL請求. //如: $link = curl_init(網(wǎng)址)
第二步:設(shè)置請求選項.  //如: curl_setopt = ($link,選項名,選項值);
第三步:執(zhí)行請求并返回結(jié)果. //如: $result =  curl_exec($link);
第四步:關(guān)閉CURL請求. //如: curl_close($link);
1)301  //域名的永久重定向
2)302   //域名臨時重定向
3)304  //直接從本地加載資源
4)403  //沒有權(quán)限訪問
5)404  //所請求的資源不存在
6)500  //主要是來自服務(wù)器方面的錯誤
image.png
setcookie ( $name, $value ,$expire , $path ,$domain]
說明:
1) $name //cookie的名稱
2) $value // cookie 的值
3) $expire//過期時間,單位, 秒,當(dāng)前時間戳加上秒數(shù), time()+3600,//有效時間1小時. time()+604800,一周時間
4) $path . // 有效路徑, 默認(rèn)為當(dāng)前根目錄及所有的子目錄有效
5) $domain // 有效域名.  默認(rèn)為當(dāng)前的域名, 如: [<u>www.abc.com</u>](http://www.abc.com)

如何徹底刪除session?

1)unset() //將變量銷毀
2)session_destroy()//刪除當(dāng)前session文件
3)將session的id刪除 (刪除cookie)
4)Setcookie(名,值,time()-99999);
5)Setcookie(session_name(),session_id(),time()-999999)

SESSION的垃圾回收:

什么是SESSION的垃圾回收?

在用戶非正確退出時,在服務(wù)器生成的session文件會一直存在. 時間一長,這樣的文件越來越多. PHP引擎會將這部分文件按時間,按一定的比例進(jìn)行刪除.
SESSION垃圾回收時間(session.gc_maxlifetime), //默認(rèn)是1440, 即24分鐘,文件超過24分鐘沒有再被訪問,即為垃圾文件.
回收的概率(session.gc_probability, session.gc_divisor)
session.gc_probability //默認(rèn)為1
session.gc_divisor//默認(rèn)為1000
在php.ini中相關(guān)設(shè)置

SESSION相關(guān)配置

1.session.name = PHPSESSID
2.session.auto_start =0 關(guān)閉, 1為自動開啟session (不建議自動開啟)
3.session.cookie_lifetime=0   //代表瀏覽器關(guān)閉,會話結(jié)束
4.session.cookie_path=/     //指定了要session會話 cookie 的有效路徑
5.session.cookie_domain    //指定了要session會話 cookie 的有效域名
6.腳本設(shè)置: 注意: 要在session_start()之前進(jìn)行設(shè)置才有效. 
a)ini_set('session.cookie_path', '/');
b)ini_set('session.cookie_domain', '.mydomain.com');
ini_set('session.cookie_lifetime', '1800')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末享潜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子嗅蔬,更是在濱河造成了極大的恐慌米碰,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件购城,死亡現(xiàn)場離奇詭異,居然都是意外死亡虐译,警方通過查閱死者的電腦和手機(jī)瘪板,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漆诽,“玉大人侮攀,你說我怎么就攤上這事∠崾茫” “怎么了兰英?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長供鸠。 經(jīng)常有香客問我畦贸,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任薄坏,我火速辦了婚禮趋厉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胶坠。我一直安慰自己君账,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布沈善。 她就那樣靜靜地躺著乡数,像睡著了一般。 火紅的嫁衣襯著肌膚如雪闻牡。 梳的紋絲不亂的頭發(fā)上净赴,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機(jī)與錄音澈侠,去河邊找鬼劫侧。 笑死,一個胖子當(dāng)著我的面吹牛哨啃,可吹牛的內(nèi)容都是我干的烧栋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼拳球,長吁一口氣:“原來是場噩夢啊……” “哼审姓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起祝峻,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤魔吐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后莱找,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酬姆,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年奥溺,在試婚紗的時候發(fā)現(xiàn)自己被綠了辞色。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡浮定,死狀恐怖相满,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情桦卒,我是刑警寧澤立美,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站方灾,受9級特大地震影響建蹄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一躲撰、第九天 我趴在偏房一處隱蔽的房頂上張望针贬。 院中可真熱鬧,春花似錦拢蛋、人聲如沸桦他。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽快压。三九已至,卻和暖如春垃瞧,著一層夾襖步出監(jiān)牢的瞬間蔫劣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工个从, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留脉幢,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓嗦锐,卻偏偏與公主長得像嫌松,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子奕污,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,810評論 0 38
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,814評論 1 10
  • 一萎羔、數(shù)據(jù)類型 在PHP中,支持8種原始類型碳默,其中包括四種標(biāo)量類型贾陷、兩種復(fù)合類型和兩種特殊類型。PHP是一門松散類型...
    大嘴蝸牛閱讀 945評論 4 5
  • “我有花一朵 種在我心中 我有花一朵 花香滿枝頭 我有花一朵 長在我心中嘱根。髓废。「檬悖” 都說花用來配女人 率真也好 內(nèi)斂...
    我是燕子啊閱讀 455評論 3 4
  • 影響成功的三個對象是:遲疑慌洪、質(zhì)疑、恐懼 恐懼的雛形就是猶豫柔逼。猶豫可以轉(zhuǎn)化成懷疑,兩者融合會產(chǎn)生恐懼割岛,猶豫和懷...
    鄧慧娟閱讀 75評論 1 1