一、了解php
1.什么是php
PHP 超文本預(yù)處理器;服務(wù)器端的腳本語(yǔ)言;是一種被廣泛應(yīng)用的開(kāi)放源代碼的多用途腳本語(yǔ)言;他可以嵌入到html中;尤其適用web開(kāi)發(fā)。
2.php在web中的應(yīng)用
服務(wù)器端的 、嵌入到html中、 腳本語(yǔ)言
3.php能做什么
收集表單數(shù)據(jù)、生成動(dòng)態(tài)頁(yè)面、字符串處理、處理服務(wù)器端文件系統(tǒng)、編寫數(shù)據(jù)庫(kù)支持頁(yè)面、會(huì)話控制、服務(wù)器端的相關(guān)操作。
4.為什么要用php
php 運(yùn)行與各種平臺(tái)(windows,linux,unix,mac os X 等等);php 兼容幾乎所有服務(wù)器(apache iis);php支持多種數(shù)據(jù)庫(kù);
php是免費(fèi)的 請(qǐng)從哪官方網(wǎng)站下載
www.php.net ;php易于學(xué)習(xí)并且高效的運(yùn)行在服務(wù)器端。
5.php主要應(yīng)用的領(lǐng)域:服務(wù)器端腳本、命令行腳本。
二、 PHP內(nèi)容
1. 第一個(gè)php腳本程序
a、php文件必須以.php為后綴,或者apache等web服務(wù)器的其他后綴名
b、php文件必須放置在服務(wù)器根目錄下才能運(yùn)行 比如說(shuō) www目錄 htdocs目錄
c、根目錄下的文件與文件夾命令都不能用中文
d、不能直接在本地打開(kāi) 必須通過(guò)瀏覽器來(lái)訪問(wèn)php文件(localhost或者 127.0.0.1)
2. php標(biāo)記語(yǔ)言
php文件中的代碼 需要放置在這對(duì)標(biāo)記中才能運(yùn)行<?php 內(nèi)容 ?>
3. php代碼嵌入html中的位置
html文檔中可以嵌套多個(gè)<?php ?> 開(kāi)始和結(jié)束標(biāo)記
url傳值的方式一定是get方式 請(qǐng)使用get方式接收
4.PHP 解讀開(kāi)始和結(jié)束標(biāo)記
標(biāo)準(zhǔn)風(fēng)格<?php ?> asp風(fēng)格 <% %> 推薦使用標(biāo)準(zhǔn)風(fēng)格
注意:整個(gè)代碼中只有php語(yǔ)言的時(shí),請(qǐng)將結(jié)束標(biāo)記省略。
5. 指令分隔符 “;”
PHP語(yǔ)法中的流程控制語(yǔ)句、定義函數(shù)的語(yǔ)句、定義類的語(yǔ)句都沒(méi)有分號(hào),除了上面的不需要加分號(hào)其他的都需要加分號(hào)。
6. 程序的注釋
html <!-- -->
css /* */
php 注釋
/**/ 多行注釋 多行注釋里面不能嵌套多行注釋
// 單行注釋
# 單行注釋
7. 在程序中的空白的處理
空格和回車都是用來(lái)排版的,讓你的代碼可讀性更高。
三、 php 基礎(chǔ)語(yǔ)法
1、變量 變量就是可變的量,可以把它看做一個(gè)容器。變量被聲明后,在整個(gè)腳本中都是可以動(dòng)態(tài)的改變變量的值。
2、變量的命名(全名)規(guī)則
a.以$開(kāi)頭 b.由字母數(shù)字下劃線組成,但是不能以數(shù)字開(kāi)頭 c.可以使用中文,但是不推薦使用
d.變量名嚴(yán)格區(qū)分大小寫e.變量定義要起到見(jiàn)名知意的作用f.變量使用前必須先聲明后使用。
3、變量的相關(guān)函數(shù)
echo 用來(lái)打印字符串或者打印變量(不能打印數(shù)組)
print_r 打印變量信息(一般用來(lái)打印數(shù)組)
var_dump 打印變量的相關(guān)信息(打印出所有信息)(照妖鏡 什么妖魔鬼怪 一照變出原形)
isset 檢測(cè)一個(gè)變量是否被聲明 如果聲明返回 true,否則返回false
unset 釋放給定的變量
4、可變變量
$a = ’hello';
$hello = 'world';
echo $a;
echo '<br/>';
echo $hello;
echo '<hr/>';
echo $$a; // world
5、變量的引用賦值
變量總是傳值賦值,內(nèi)存開(kāi)辟空間
引用賦值: 在將要賦值的變量上加上& ,內(nèi)存不開(kāi)辟空間
如果加上&,兩個(gè)變量就是一個(gè)值,任意改變其中一個(gè)變量的值,另一個(gè)也隨著改變。
四、變量的數(shù)據(jù)類型
1.類型
標(biāo)量類型: 布爾型 整型 浮點(diǎn)型 字符串
復(fù)合類型: 數(shù)組 對(duì)象
特殊類型: 資源 null
2. 布爾型 true false
布爾值false、整型值0、浮點(diǎn)的0、空字符串和字符串0、空數(shù)組、空對(duì)象(只適用于php4)、特殊類型null的值是false,其他值都認(rèn)為是true。
3. 整型 正整數(shù) 負(fù)整數(shù) 0
整型的最大值 相對(duì)于32位操作系統(tǒng) 我們的最大值是 2147483647
整型的最小值 相對(duì)于32位操作系統(tǒng) 我們的最小值是 - 2147483647
可以使用十進(jìn)制 八進(jìn)制 十六進(jìn)制 二進(jìn)制來(lái)表示整型。
整型的值不能超過(guò)最大最小范圍 如果超過(guò)了 將會(huì)被解析稱為float;
整型中如果轉(zhuǎn)換為布爾型 除0以外的所有值都會(huì)被轉(zhuǎn)換為true值。
4. 浮點(diǎn)型 就是小數(shù)
浮點(diǎn)數(shù)的最大值 相對(duì)于32位系統(tǒng)來(lái)說(shuō) 1.7E 308。
浮點(diǎn)數(shù)的最小值 -1.7E308 精確到小數(shù)點(diǎn)后15位。
超出范圍出現(xiàn)inf 無(wú)窮大。
5. 字符串
字符串,可以用單、雙引號(hào)和定界符來(lái)定義,字符串沒(méi)有長(zhǎng)度限制。
單引號(hào): a、單引號(hào)不解析變量,效率高,推薦使用
b、單引號(hào)不能包含單引號(hào),如果需要顯示的單引號(hào)需要加上轉(zhuǎn)義字符(\)
c、在單引號(hào)中,如果試圖轉(zhuǎn)義特殊字符 ,反斜線本身會(huì)被顯示出來(lái)
d、單引號(hào)可以使用轉(zhuǎn)義字符串,但是只能轉(zhuǎn)義單引號(hào)和轉(zhuǎn)義字符本身。
雙引號(hào): a、雙引號(hào)解析變量
b、雙引號(hào)可以解析特殊字符
c、雙引號(hào)如果解析變量,請(qǐng)?jiān)谧兞亢蠹由峡崭窕蛘遻}
d、雙引號(hào)可以插入單引號(hào) 單引號(hào)中可以插入雙引號(hào)(可以互插)
e、但是雙引號(hào)中不能插入雙引號(hào),單引號(hào)中不能插入單引號(hào)
f、如果想在雙引號(hào)中使用雙引號(hào)那么請(qǐng)使用轉(zhuǎn)義字符(相當(dāng)于潤(rùn)滑劑)
6.定界符
<<< 聲明方式 :在定界符后面給一個(gè)標(biāo)識(shí)符開(kāi)始然后以這個(gè)標(biāo)識(shí)符結(jié)束
例如:
<<<aaa
aaa;
定界符的結(jié)束表示必須寫在第一列,而且必須作為一個(gè)單行,后面不能有任意字符。
定界符的標(biāo)識(shí)符必須遵循php中的命令規(guī)范:只能包含數(shù)字、字母下劃線、但是不能以數(shù)字開(kāi)頭。
定界符的作用和雙引號(hào)相同,常用于文本和大段落數(shù)據(jù)輸出文檔使用。
7.數(shù)組
數(shù)組就是一組數(shù)的集合,用array來(lái)聲明數(shù)組
根據(jù)下標(biāo)區(qū)分:關(guān)聯(lián)數(shù)組、索引數(shù)組、混合數(shù)組
根據(jù)維度來(lái)區(qū)分:一維數(shù)組、二維數(shù)組、多維數(shù)組
8.對(duì)象 對(duì)象和類
資源類型(resource) 電腦中存放的都是資源,通常是通過(guò)php函數(shù)打開(kāi)一個(gè)文件或者圖片,或者數(shù)據(jù)庫(kù)連接等產(chǎn)生。
9.null 浮云的意思, 神馬都是浮云 null 不區(qū)分大小寫
認(rèn)為是null的情況:
a.將變量直接賦值null
b.聲明的變量尚未被賦值
c.被unset函數(shù)銷毀的數(shù)值
10.isset 檢測(cè)變量是否被聲明,如果聲明返回true 否則返回false
11.empty 判斷變量值是否是空零假,如果是返回true 否則返回false
五、判斷類型
is_int(),is_integer() 和is_long() 判斷是否是整型
is_float(),is_double()和is_real() 判斷是否是浮點(diǎn)型
is_bool() 判斷是否是布爾型
is_string() 判斷是否是字符串
is_array() 判斷是否是數(shù)組
is_object() 判斷是否是對(duì)象
is_resource() 判斷是否是資源
is_null() 判斷是否是null
is_scalar() 判斷是否是標(biāo)量
is_numeric() 判斷是否是任何類型的數(shù)字或數(shù)字字符串
is_callable() 判斷是否是有效的函數(shù)名
六、類型轉(zhuǎn)換
1、自動(dòng)轉(zhuǎn)換
四種標(biāo)量通過(guò)運(yùn)算的時(shí)候會(huì)自動(dòng)轉(zhuǎn)換
只有標(biāo)量才是用自動(dòng)類型轉(zhuǎn)換,一般是在運(yùn)算時(shí)
布爾型參與運(yùn)算 true ->1 false->0
null 參與運(yùn)算 null ->0
integer 和float 運(yùn)算 把integer 轉(zhuǎn)換為float在運(yùn)算
字符串和數(shù)字運(yùn)算,字符串先轉(zhuǎn)換為數(shù)字 在參與運(yùn)算
字符串轉(zhuǎn)換為數(shù)字,從前開(kāi)始到第一個(gè)不是數(shù)字的字符結(jié)束
整型轉(zhuǎn)換為浮點(diǎn)數(shù)精度不改變
浮點(diǎn)數(shù)轉(zhuǎn)換整型舍棄小數(shù)點(diǎn) 保留整數(shù)部分 如果浮點(diǎn)數(shù)超過(guò)整數(shù)范圍 答案不確定
null 值轉(zhuǎn)換為字符串是空字符串
2、強(qiáng)制轉(zhuǎn)換
兩種方式:
a.使用括號(hào)加目標(biāo)類型進(jìn)行類型轉(zhuǎn)換(int) (integer)、(bool)(boolean)、float)(double)(real)、
(string)、(array)、(object)
b.使用類型轉(zhuǎn)換函數(shù) intval()、floatval()、strval()、settype()
設(shè)置類型:第一個(gè)參數(shù) 變量 第二個(gè)參數(shù) 要轉(zhuǎn)換的類型
七、常量
1、常量用來(lái)表示程序中一些需要經(jīng)常用到的固定的值
定義常量:
define()
define(‘常量名’,’標(biāo)量’,false);//false 常量名區(qū)分大小寫 默認(rèn)值 推薦使用默認(rèn)值
define(‘常量名’,’標(biāo)量’,true);//true 不區(qū)分大小寫(不推薦使用)
常量的方式:
const 常量名= 常量值
常量名的定義規(guī)范:
a.常量名不能以$開(kāi)頭
b.常量名以字母數(shù)字下劃線組成
c.不能以數(shù)字開(kāi)頭
d.常量名可以使用中文,但是不推薦使用
e.常量一旦定義不能取消不能重新定義
f.常量全局有效
2、常量值 數(shù)據(jù)類型可以有多種(php5.6以下是這樣的是四種 php7 類型限制沒(méi)有到四)
3、用來(lái)檢測(cè)常量的函數(shù)
defined() 用來(lái)檢測(cè)常量是否被聲明,被聲明返回true,否則false。括號(hào)中一定要有引號(hào)
八、系統(tǒng)常量
PHP_OS php運(yùn)行系統(tǒng)名稱 區(qū)分大小寫
PHP_VERSION php 版本 區(qū)分大小寫
TRUE
FALSE
NULL
九、魔術(shù)常量
1、__FILE__ 返回當(dāng)前文件全路徑包括文件名
2、__LINE__ 返回當(dāng)前行數(shù)
PHP 運(yùn)算符
-------------------------
一、什么是運(yùn)算符
運(yùn)算符是可以通過(guò)給出的一個(gè)或多個(gè)值(用編程的語(yǔ)言來(lái)說(shuō) 叫做表達(dá)式),來(lái)產(chǎn)生另一個(gè)值(因而整個(gè)結(jié)果成為一個(gè)表達(dá)式)的東西.
二、運(yùn)算符類型
1.一元運(yùn)算符:只運(yùn)算一個(gè)值 例如:$a++, ++$a, !$a
2.二元運(yùn)算符: 有兩個(gè)操作數(shù)的 $a+$b $a-$b...
3.三元運(yùn)算符: ?: 他應(yīng)該被用來(lái)根據(jù)一個(gè)表達(dá)式在另兩個(gè)表達(dá)式中選擇一個(gè),而不是用來(lái)在兩個(gè)語(yǔ)句或者程序中選擇,將整個(gè)三元表達(dá)式放在括號(hào)中是個(gè)好辦法.
三、運(yùn)算符功能分類
1.算術(shù)運(yùn)算符 + - * / %
++ 前加加(++$a) 先運(yùn)算后賦值 后加加($a++) 先賦值后運(yùn)算
-- 前減減(--$a) 先運(yùn)算后賦值 后減減($a--) 先賦值后運(yùn)算
2.連接運(yùn)算符(字符串運(yùn)算符) . 神奇的米粒
a. 字符串和字符串連接時(shí)候需要使用
b. 字符串和變量連接時(shí)候需要使用
c. 變量和字符串連接時(shí)候需要使用
d. 變量和變量連接時(shí)候需要使用
3. 賦值運(yùn)算符 注意: 請(qǐng)記住等號(hào)在這里不是等于的意思是賦值的意思
= 將一個(gè)值或者表但是的結(jié)果賦予給變量
+= 將變量與所賦的值相加后的結(jié)果賦給變量
-= 將變量與所賦的值相減后的結(jié)果賦給變量
*= 將變量與所賦的值相乘后的結(jié)果賦給變量
/= 將變量與所賦的值相除后的結(jié)果賦給變量
%= 將變量與所賦的值求模后的結(jié)果賦給變量
.= 將變量與所賦的值相連后的結(jié)果賦給變量
4. 比較運(yùn)算符
> 大于 當(dāng)左邊大于右邊的時(shí)候返回true 否則返回false
< 小于 當(dāng)左邊小于右邊的時(shí)候返回true 否則返回false
>= 大于等于 當(dāng)左邊大于等于右邊的時(shí)候返回true 否則返回false
<= 小于等于 當(dāng)左邊小于等于右邊的時(shí)候返回true否則返回false
== 等于 兩邊操作數(shù)的值相等時(shí)返回true 否則返回false
=== 全等于 兩邊值相等并且類型也相等返回true 否則返回false
!=或者<>不等于 兩邊值不相等時(shí)返回true 否則返回false
!== 非全等于 兩邊的值與類型相同的時(shí)候返回false 否則返回true
5. 邏輯運(yùn)算符
邏輯與: && 或者(and) 判斷條件 一邊為假 即為假(洗臉)
邏輯或: || 或者(or) 判斷條件 一邊為真 即為真(丟錢包)
邏輯非: ! 判斷條件 真變假 假變真(去泰國(guó))
邏輯異或: xor 判斷條件 相同為假 不同為真(生小孩)
6. 其他運(yùn)算符
? : 三元運(yùn)算符 可以提供簡(jiǎn)單的邏輯判斷 ?后面的為真區(qū)間 : 后面的為假區(qū)間
`` 反引號(hào)(``)是執(zhí)行運(yùn)算符php 將嘗試將反引號(hào)的內(nèi)容作為外部命令來(lái)執(zhí)行 并將其處輸入的內(nèi)容返回
@ 錯(cuò)誤控制運(yùn)算符 ,將其放置在一個(gè)php表達(dá)式前面,用來(lái)控制可能產(chǎn)生的任何錯(cuò)誤??梢院雎渣c(diǎn)錯(cuò)誤信息。
=> 數(shù)組下標(biāo)指定符 通過(guò)此符號(hào)指定數(shù)組的下標(biāo)和值
-> 對(duì)象成員訪問(wèn)符號(hào) 訪問(wèn)對(duì)象中的成員屬性和成員方法
instanceof 類型運(yùn)算符 用來(lái) 測(cè)定一個(gè)對(duì)象是否來(lái)自指定的對(duì)象類
PHP 流程控制
--------------------------
一、流程控制
1.順序結(jié)構(gòu)
自上而下 從左到右
2.條件分支結(jié)構(gòu)
a. 單向分支結(jié)構(gòu)
if() 只能管理一條指令 這條指令是和他緊跟著的指令
if(){} 只能管理整個(gè)花括號(hào)里面的代碼 我們管這段代碼叫做代碼塊或者語(yǔ)句體
if(): endif; 替換語(yǔ)法 模版模式
b. 雙向分支結(jié)構(gòu)
if() else if只能控制一條語(yǔ)句所有if后面不能寫多個(gè)語(yǔ)句寫多個(gè)語(yǔ)句會(huì)報(bào)語(yǔ)法錯(cuò)誤
if(){}else{}
if(): else: endif;
c. 多向分支結(jié)構(gòu)(if else從句)
if(){}elseif(){}else(){}
d. 多向分支結(jié)構(gòu)(switch case從句)
switch(){
case 1:
case 2:
}
注意: switch從句 case后面可以是分號(hào)也可以是冒號(hào)但是推薦使用冒號(hào)
switch 語(yǔ)句中 每個(gè)case條件后面一個(gè)要寫一個(gè)break進(jìn)行跳出,匹配的類型可以是不相同的
e. 巢狀分支結(jié)構(gòu)
3.循環(huán)結(jié)構(gòu)
循環(huán)三要素: 初始值 循環(huán)條件 改變條件
for計(jì)數(shù)循環(huán)
格式: for(表達(dá)式1;表達(dá)式2;表達(dá)式3){循環(huán)體語(yǔ)句}
表達(dá)式1: 用來(lái)循環(huán)的初始值
表達(dá)式2: 用于循環(huán)的判斷條件是否執(zhí)行循環(huán) true 執(zhí)行 false 不執(zhí)行 執(zhí)行n+1次
表達(dá)式3 用于改變條件 循環(huán)中$i++
for循環(huán)執(zhí)行順序:
表達(dá)式1->表達(dá)式2->循環(huán)體語(yǔ)句->表達(dá)式3->表達(dá)式2->循環(huán)體語(yǔ)句->表達(dá)式3->
表達(dá)式2->循環(huán)體語(yǔ)句->表達(dá)式3->表達(dá)式2(不滿足條件)->跳出循環(huán)
for 可以將表達(dá)式123全部拿出來(lái)
布爾循環(huán)
while do..while
while(循環(huán)條件){循環(huán)體}
二、特殊流程控制
1.break 跳出整個(gè)循環(huán),執(zhí)行下面代碼
2.continue 跳出當(dāng)次循環(huán),進(jìn)入下次循環(huán)
3.exit 別名 終止整個(gè)程序執(zhí)行,不會(huì)再次執(zhí)行下面內(nèi)容
4.die 終止整個(gè)程序執(zhí)行,不會(huì)再次執(zhí)行下面內(nèi)容
三、goto 了解即可
goto 操作符用來(lái)跳轉(zhuǎn)到程序中的另一個(gè)位置,這個(gè)位置可以用操作符名稱加上冒號(hào)標(biāo)記。
PHP 函數(shù)
------------
一、函數(shù)定義
1、定義: 就是一個(gè)被命名的、獨(dú)立的代碼段、他可以執(zhí)行特定任務(wù),并且返回給調(diào)用他的程序一個(gè)返回值
2、函數(shù)是被命名的:每個(gè)函數(shù)都是有唯一的名稱,在程序的其他部分使用該名稱可以執(zhí)行函數(shù)中的語(yǔ)句,稱為調(diào)用函數(shù)
3、函數(shù)是獨(dú)立的: 無(wú)須其他程序干預(yù),函數(shù)可以自己執(zhí)行其任務(wù)
4、函數(shù)執(zhí)行特定任務(wù): 任務(wù)就是我們要運(yùn)行的特定代碼和具體工作,比如輸出一行字、算出立方根 對(duì)數(shù)組進(jìn)行排序等
5、函數(shù)可以將一個(gè)返回值返回給調(diào)用的程序:程序調(diào)用函數(shù)時(shí),將執(zhí)行該函數(shù)中的語(yǔ)句 而這些語(yǔ)句可以將信息返回給調(diào)用他們的程序
二、函數(shù)的優(yōu)越性
a.提高程序的重用性
b.提高軟件的可維護(hù)性
c.提高軟件的開(kāi)發(fā)效率
d.提高軟件的可靠性
e.控制程序設(shè)計(jì)的復(fù)雜性
三、自定義函數(shù)
1、函數(shù)的聲明
a、語(yǔ)法格式
function 函數(shù)名([參數(shù)1,參數(shù)2,參數(shù)3,....參數(shù)n])
{
函數(shù)體//可以是多條代碼 可以是代碼塊
return 返回值
}
說(shuō)明:參數(shù)可以沒(méi)有,也可以有多個(gè)如果沒(méi)有參數(shù)小括號(hào)要保留
return 返回值 可以沒(méi)有 但是沒(méi)有返回值的函數(shù)是不完整的
return 語(yǔ)句結(jié)束后,不要在寫其他代碼 因?yàn)椴粫?huì)被執(zhí)行
2、函數(shù)的命名
命名規(guī)則
a.函數(shù)名命名遵循php命名規(guī)則,字母數(shù)字下劃線組成但是不能以數(shù)字開(kāi)頭
b.函數(shù)名不區(qū)分大小寫
c.不能重復(fù)聲明函數(shù)名一樣的函數(shù)
3、函數(shù)的調(diào)用
格式:
函數(shù)名();
4、檢測(cè)函數(shù)名是否被定義
function_exists(); 判斷函數(shù)名是否被聲明
5、參數(shù)列表
a.形參
形參就是在函數(shù)聲明的時(shí)候小括號(hào)里面的參數(shù)我們就叫做形參
形參可以有默認(rèn)值,也可以沒(méi)有默認(rèn)值
沒(méi)有默認(rèn)值的時(shí)候,必須有實(shí)參傳遞過(guò)來(lái)(默認(rèn)值相當(dāng)于小三 ,實(shí)參就是老婆)
如果有默認(rèn)值請(qǐng)將默認(rèn)值放在參數(shù)的最右邊,沒(méi)有默認(rèn)值的請(qǐng)放在左邊
多個(gè)形參的時(shí)候中間使用逗號(hào)隔開(kāi)
b.實(shí)參
實(shí)參是在函數(shù)調(diào)用的時(shí)候小括號(hào)里面的參數(shù)我們叫做實(shí)參
實(shí)參的個(gè)數(shù)可以比形參多,多出來(lái)的參數(shù)沒(méi)有用,所以我們實(shí)參的個(gè)數(shù)需要按照形參的個(gè)數(shù)去寫,
但是如果你的形參有默認(rèn)值可以少寫你的實(shí)參。
6、return 返回值
作用:
1.return 語(yǔ)句可以返回一個(gè)函數(shù)體任意值
2.return 相當(dāng)于退出函數(shù)所以 return后面的代碼不會(huì)被執(zhí)行
3.函數(shù)中沒(méi)有return就只能算是一個(gè)執(zhí)行過(guò)程,不能將函數(shù)里面的值拿到,也就是說(shuō)只能看看
這個(gè)函數(shù)不能使用了函數(shù)。
四、各種各樣的函數(shù)
1.常規(guī)參數(shù)的函數(shù) 就是實(shí)參和形參應(yīng)該的個(gè)數(shù)相等 類型一致
2.可變個(gè)數(shù)參數(shù)的函數(shù)(不需要寫形參) 實(shí)參(任意)個(gè)數(shù)大于形參個(gè)數(shù)的函數(shù) 參數(shù)長(zhǎng)度不固定
a.func_get_args() 獲取參數(shù)列表并且以數(shù)組的形式返回
b.func_num_args() 獲取參數(shù)個(gè)數(shù)
c.func_get_arg(index) 通過(guò)下標(biāo)取出我們數(shù)組中的值
3. 變量函數(shù)
變量函數(shù):如果一個(gè)變量后面有括號(hào) $var = ‘hello’;$var() 就會(huì)尋找與變量值同名的函數(shù)進(jìn)行調(diào)用
4.回調(diào)函數(shù)
回調(diào)函數(shù):有一個(gè)參數(shù)值是另一個(gè)函數(shù)的函數(shù)名并且會(huì)自動(dòng)調(diào)用該函數(shù)
例:將函數(shù)名sum,函數(shù)名xo,函數(shù)名chicken 函數(shù)名shang,作為字符串參數(shù)
傳遞給result函數(shù)那么我們就說(shuō)sum,xo,chicken,shang,就是result函數(shù)的回調(diào)函數(shù)。
5.匿名函數(shù) ☆☆☆
聲明格式: $user= function($a,$b){};
匿名函數(shù)后面必須加分號(hào) 算作功能型語(yǔ)句;擴(kuò)展use 會(huì)自動(dòng)把外部的同名變量引入到內(nèi)部使用;
使用use的時(shí)候 被引入的變量必須存在。
6.遞歸函數(shù)
就是自己調(diào)用自己的函數(shù)就是遞歸函數(shù)。
五、PHP變量的范圍
1.全局變量
在函數(shù)外聲明的變量就是全局變量
全局變量在局部中使用,在函數(shù)內(nèi)部使用全局變量需要借助$GLOBALS 超全局?jǐn)?shù)組。
2.局部變量
在函數(shù)內(nèi)聲明的變量就是局部變量
局部變量在全局中使用,需要借助關(guān)鍵字 global global關(guān)鍵字聲明變量。
注意: global關(guān)鍵字聲明變量的時(shí)候不能再聲明上直接賦值。
3.根據(jù)存儲(chǔ)方式上可以分為動(dòng)態(tài)存儲(chǔ)和靜態(tài)存儲(chǔ)
i. 普通變量(動(dòng)態(tài)存儲(chǔ))
$變量名 = 變量值 函數(shù)調(diào)用一次聲明一次釋放一次。
ii. 靜態(tài)變量
static $變量名= 變量值 聲明的靜態(tài)變量會(huì)在第一次運(yùn)行函數(shù)的時(shí)候,
就存儲(chǔ)到內(nèi)存中不會(huì)釋放,每調(diào)用一次都會(huì)直接在內(nèi)存中取出來(lái)。
六、使用自定義函數(shù)庫(kù)
1.include
寫法:
a)include ‘function.php’
b)include(‘function.php’)
2.require
寫法:
a)require ’function.php’
b)require(‘function.php’)
3.include_once
作用:如果該文件中代碼已經(jīng)被包含了,則不在被包含否則在進(jìn)行包含,以確保文件只被包含一次。
4.require_once
作用:如果該文件中代碼已經(jīng)被包含了,則不在被包含否則在進(jìn)行包含,以確保文件只被包含一次。
區(qū)別:include 彈出的錯(cuò)誤會(huì)繼續(xù)執(zhí)行 require 彈出的錯(cuò)誤不會(huì)繼續(xù)執(zhí)行
數(shù)組
---------------
一、數(shù)組的概念
a)概念: 數(shù)組的本質(zhì)是存儲(chǔ)、管理和操作一組變量,屬于復(fù)合類型的一種。
b)關(guān)于鍵值對(duì)的概念:$arr = array('id'=>1,'name'=>'wuli濤','sex'=>'人妖','age'=>34);
每個(gè)數(shù)組可以有多個(gè)值,多個(gè)值之間用逗號(hào)隔開(kāi),每個(gè)逗號(hào)內(nèi)的數(shù)據(jù)稱為一個(gè)單元,每個(gè)單元都
是由鍵(下標(biāo))=>值 也就是鍵值對(duì)的組成,如果不寫下標(biāo)(鍵)默認(rèn)會(huì)使用整數(shù)作為下標(biāo),每個(gè)單元的值必
須有下標(biāo),通過(guò)下標(biāo)來(lái)定位每個(gè)值在數(shù)組中的位置 每個(gè)單元有些只有一個(gè)種類型的下標(biāo),索引(整數(shù))或
者關(guān) 聯(lián)(字符串)。
二、數(shù)組的定義(聲明)方法
1.直接賦值法
a)直接賦值法如果聲明時(shí)不指定下標(biāo) 默認(rèn)從0分配索引下標(biāo)。
b)如果給出索引下標(biāo) 下一個(gè)下標(biāo)就會(huì)從最大的開(kāi)始每次增加一,如果后面出現(xiàn)前面的下標(biāo)
就會(huì)覆蓋前面的賦值
c)混合數(shù)中索引序列不會(huì)被關(guān)聯(lián)下標(biāo)影響。
2.使用array方法
3.使用[]定義 注意:php5.3.60以后版本支持此方法
三、數(shù)組的分類
1. 按下標(biāo)(鍵)不同分
a)索引數(shù)組 使用整數(shù)作為下標(biāo)(鍵)
b)關(guān)聯(lián)數(shù)組 使用字符串作為下標(biāo)(鍵)
c)混合數(shù)組 即使用整數(shù)又使用字符串作為下標(biāo)(鍵)
注意:下標(biāo)(鍵) 是用來(lái)定位值在數(shù)組中的位置,每個(gè)值只能使用一種類型下標(biāo). 下標(biāo)也稱為鍵。
2. 按照維度不同分
a)一維數(shù)組 數(shù)組內(nèi)再也沒(méi)有數(shù)組元素
b)二維數(shù)組 數(shù)組內(nèi)還有數(shù)組
c)多維數(shù)組 數(shù)組內(nèi)還有數(shù)組 數(shù)組內(nèi)還有數(shù)組 各種嵌套
一維數(shù)組、二維數(shù)組、多維數(shù)組、聲明方式都是一樣的 三種。
四、數(shù)組遍歷方式
數(shù)組的遍歷概念:使用一種特定的規(guī)則來(lái)逐個(gè)讀取數(shù)組中的鍵和值。
1.for語(yǔ)句
for語(yǔ)句只能遍歷索引數(shù)組,并且下標(biāo)是連續(xù)的 而且要注意$i的值 不能遍歷關(guān)聯(lián)數(shù)組。
2.foreach() 語(yǔ)句(專業(yè))
a.只遍歷值 foreach(要遍歷的數(shù)組 as 值){}
b.遍歷鍵和值 foreach(要遍歷的數(shù)組 as 鍵=>值){}
注意: $key與$value 變量名不是固定的 可以任意命名 foreach 是有循環(huán)的功能
注意:推薦使用的遍歷二維數(shù)組的方式
foreach($arr as $key=>$value){
//var_dump($value);
echo $value['name'].'<br/>';
echo $value['age'].'<br/>';
echo $value['sex'].'<br/>';
}
3.while_list_each 語(yǔ)句遍歷數(shù)組
list可以將一組索引數(shù)組單元逐個(gè)賦值給一組變量,把每個(gè)值賦給list內(nèi)的變量
list 只能給索引數(shù)組的單元賦值,不能將關(guān)聯(lián)數(shù)組的值賦值 而且這個(gè)索引數(shù)組必須是從0開(kāi)始
4.指針的方式遍歷數(shù)組
current() 返回當(dāng)前指針指向的數(shù)組單元的值
key() 返回當(dāng)前指針指向數(shù)組單元的鍵
next() 返回下一個(gè)指針位置指向的單元的值
prev() 返回上一個(gè)指針位置指向的單元的值
end() 返回最后一個(gè)單元的值
reset() 重置指針?lè)祷爻跏紶顟B(tài)
五、預(yù)定義數(shù)組(超全局?jǐn)?shù)組)
i.服務(wù)器變量 : $_SERVER
1.$_SERVER['SERVER_ADDR']; 客戶端ip地址
2.$_SERVER[‘HTTP_REFERER’] 上級(jí)來(lái)源地址
3.$_SERVER['DOCUMENT_ROOT'] 根目錄的絕對(duì)路徑
4.$_SERVER['SCRIPT_NAME'] 當(dāng)前運(yùn)行腳本名
5.$_SERVER['QUERY_STRING'] get請(qǐng)求所帶的參數(shù)列表字符串形式表現(xiàn)
ii.HTTP GET變量: $_GET 使用get方式傳遞值的時(shí)候接收使用
iii.HTTP POST變量:$_POST 使用post方式傳遞值的時(shí)候接收使用
iv.request變量:$_REQUEST 接收get、post、cookie 傳遞值的時(shí)候接收使用
v.HTTP 文件上傳變量:$_FILES 用來(lái)打印文件上傳是否成功的文件信息
需要使用enctype="multipart/form-data"來(lái)配合文件上傳,只有寫了才可以使用$_FILES 打印上傳的文件信息
vi.HTTP cookies: $_COOKIE
vii.session變量:$_SESSION
viii.GLOBAL 變量: $GLOBALS
錯(cuò)誤處理和時(shí)間函數(shù)
-----------------------、
一、錯(cuò)誤處理
a)錯(cuò)誤報(bào)告級(jí)別
1.語(yǔ)法錯(cuò)誤: error 會(huì)給一個(gè)致命錯(cuò)誤 終止程序繼續(xù)執(zhí)行
2.運(yùn)行時(shí)錯(cuò)誤: notice warning 運(yùn)行代碼的時(shí)候錯(cuò)了 有錯(cuò)誤提示,但是他們不會(huì)影響程序運(yùn)行
但是結(jié)果不是我們想要的
3.邏輯錯(cuò)誤:邏輯出現(xiàn)錯(cuò)誤 最大的難就就是不報(bào)錯(cuò),不好排除
4.notice: 本身不是一個(gè)錯(cuò)誤 只是一個(gè)提示,這個(gè)錯(cuò)誤可以忽略
5.warning: 警告只要產(chǎn)生warning錯(cuò)誤 程序的執(zhí)行結(jié)果就不是我們想要的,但是這個(gè)級(jí)別的錯(cuò)誤,
不會(huì)終止程序執(zhí)行 但是這個(gè)錯(cuò)誤必須解決掉
6.error:致命錯(cuò)誤 必須排除
b)調(diào)整錯(cuò)誤報(bào)告級(jí)別
E_ERROR 1 致命的運(yùn)行時(shí)錯(cuò)誤(阻止代碼執(zhí)行)
E_WARNING 2 運(yùn)行時(shí)警告
E_NOTICE 8 運(yùn)行時(shí)注意
E_ALL 所有的錯(cuò)誤,警告的注意信息
c)trigger_error 代替die()
trigger_error 可以模擬一個(gè)報(bào)錯(cuò)信息輸出
d)自定義錯(cuò)誤處理
1.屏蔽錯(cuò)誤
a.
ini_set() 設(shè)置php.ini中的配置項(xiàng)
ini_get() 獲取php.ini中的配置項(xiàng)
b.
error_reporting() 設(shè)置錯(cuò)誤報(bào)告級(jí)別
E_ALL^E_NOTICE
E_ALL^E_NOTICE^E_WARNING
2.手動(dòng)修改錯(cuò)誤
a); Possible Values:
b); Off = Do not display any errors
c); stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
d); On or stdout = Display errors to STDOUT
e); Default Value: On
f); Development Value: On
g); Production Value: Off
i)display_errors = On 將on 改成off屏蔽錯(cuò)誤
或者
; Common Values:
; E_ALL (Show all errors, warnings and notices including coding standards.)
; E_ALL & ~E_NOTICE (Show all errors, except for notices)
; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding
standards warnings.)
; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
error_reporting =E_ALL & ~E_NOTICE
3.自定義錯(cuò)誤日志
error_log() 使用指定的文件記錄錯(cuò)誤報(bào)告日志
error_log寫入wamp下面的php日志中
; Log errors to specified file. PHP's default behavior is to leave this value
; empty.
; Example:
error_log ="c:/wamp/logs/php_error.log"
; Log errors to syslog (Event Log on Windows).
;error_log = syslog
4.以下幾種情況可以考慮自定義錯(cuò)誤處理
a)可以記下錯(cuò)誤信息 及時(shí)發(fā)現(xiàn)一些生產(chǎn)環(huán)境出現(xiàn)的問(wèn)題
b)可以屏蔽錯(cuò)誤
c)可以控制錯(cuò)誤的輸出
d)可以作為調(diào)試工具
二、時(shí)間函數(shù)
1.UNIX 時(shí)間戳
自從Unix紀(jì)元(格林威治時(shí)間1970年1月1日 00:00:00)到現(xiàn)在的秒數(shù)
2.獲取事件戳
time() 函數(shù)返回一個(gè)當(dāng)前系統(tǒng)的時(shí)間戳
3.格式化時(shí)間戳
date() 有兩個(gè)參數(shù) 第一個(gè)參數(shù)是要以什么格式輸出 第二個(gè)參數(shù)是時(shí)間戳
返回將整數(shù)時(shí)間戳 按照給定的格式字符串而產(chǎn)生字符串 如果沒(méi)有給出時(shí)間
戳則使用本地當(dāng)前時(shí)間戳 換句話來(lái)說(shuō)就是時(shí)間戳可選 如果沒(méi)有就默認(rèn)當(dāng)前時(shí)間戳.
4.獲取指定時(shí)間的時(shí)間戳
mktime取的一個(gè)日期的unix時(shí)間戳
mktime(時(shí),分,秒,月,日,年)
5.時(shí)區(qū)
date_default_timezone_set() 設(shè)置時(shí)區(qū)
參數(shù)值:
PRC 中華人民共和國(guó)
Asia/Shanghai 亞洲/上海
Asia/ChongQing 亞洲/重慶
Asia/Hong_Kong 亞洲/香港
date_default_timezone_get() 獲取時(shí)區(qū)
6.用英文文本來(lái)描述時(shí)間
strtotime() 將任何英文文本的日期和時(shí)間描述成時(shí)間戳
unix時(shí)間戳的有效期
正則表達(dá)式
------------------
一、什么時(shí)候用正則表達(dá)式?
當(dāng)字符串函數(shù)已經(jīng)不能勝任某個(gè)功能的時(shí)候,用正則表達(dá)式來(lái)搞定。
其作用就是用來(lái)對(duì)字符串進(jìn)行匹配查找,替換以及分割等操作。
二、學(xué)習(xí)正則表達(dá)式可以做什么
1. 操作字符串是正則表達(dá)式的唯一作用
2. 驗(yàn)證用戶名,長(zhǎng)度
3. 驗(yàn)證電話號(hào)
4. 驗(yàn)證密碼是否符合規(guī)則符合標(biāo)準(zhǔn)
5. QQ聊天表情
6. 新聞采集器/小偷程序
三、看看正則的幾個(gè)特點(diǎn)
正則表達(dá)式也是一個(gè)字符串
由有特殊的意義的字符串組成,具有一定編寫規(guī)則,也是一種模式看做是一種編程語(yǔ)言。
注意: 如果正則表達(dá)式不和函數(shù)一起使用則他就是普通字符串 如果將正則表達(dá)式放入函數(shù)中使用,
才能發(fā)揮正則表達(dá)式的作用。
preg_match() 進(jìn)行一次正則表達(dá)式匹配
preg_match_all() 進(jìn)行全局正則表達(dá)式匹配
第一個(gè)參數(shù): 正則表達(dá)式
第二個(gè)參數(shù): 要匹配的變量
第三個(gè)參數(shù): 匹配出來(lái)的數(shù)組
四、學(xué)習(xí)流程
1.語(yǔ)法學(xué)習(xí) 就是一個(gè)字符串
2.函數(shù)學(xué)習(xí) 查找替換匹配等
以上內(nèi)容缺一不可
五、正則表達(dá)式的語(yǔ)法
1.正則定界符
2.正則表達(dá)式中的原子
3.正則表達(dá)式的元字符(原子修飾符)
4.正則表達(dá)式模式修飾符
六、定界符
是用來(lái)聲明正則表達(dá)式的邊界符號(hào),常用的是’/’ 推薦使用。實(shí)際上數(shù)字、字母、 ’\’ 之外都可以。
如果你要將$作為定界符的情況下外面必須使用單引號(hào)作為字符串的定界符不能是雙引號(hào),因?yàn)殡p引號(hào)會(huì)
解析變量。
注意:
正則表達(dá)式有兩個(gè)定界符
一個(gè)是字符串的引號(hào)的邊界符
一個(gè)是正則的定界符
七、原子符
是正則表達(dá)式的最小單位,所有可見(jiàn)的字符都是原子,大部分不可見(jiàn)字符也是原子,如:空格、轉(zhuǎn)義
字符。
1. 普通字符 數(shù)字 字母 下劃線
2. 特殊字符 ! @ # $ % ^ & *
3. 非打印字符
\f -- 分頁(yè)符
\n -- 換行符
\r -- 回車符
\t -- 制表符
\v -- 垂直制表符
☆☆☆
\d 匹配所有數(shù)字
\D 匹配非數(shù)字
\s 匹配所有空白字符 包括 \r \n \t 等
\S 匹配非空白字符
\w 匹配字母數(shù)字下劃線
\W 匹配非字母 數(shù)字 下劃線
. 匹配所有內(nèi)容 但是除了\n以外
\V 匹配轉(zhuǎn)義字符串
八、正則表達(dá)式的元字符(原子修飾符)
1、原子列表
[abc] 可選列表 只能是原子列表中的一個(gè)字符
[4-6] 連續(xù)的列表 4,5,6 可以匹配
[^abc] 排除列表 除了 a,b,c 都可以
2、原子修飾符
+ 表示一個(gè)或者多個(gè)
? 表示0個(gè)或者一個(gè)
* 表示從0個(gè)到n個(gè)
{}
{m,n} 表示m到n個(gè)
{m,} 表示m個(gè)以上
{m} 表示m個(gè)
九、詞邊界修飾符
可以分割單詞的都是詞邊界,非字母數(shù)字下劃線。
\b 詞邊界
\B 非詞邊界
注意: 詞邊界只對(duì)英文有效
十、字符串邊界
^ 以指定字符開(kāi)頭的
$ 以指定字符結(jié)尾
^ 字符串$ 精確匹配字符串
十一、選擇修飾符
| 邏輯或
/a|b/ 匹配 a或者 匹配b
/abc|def/ 匹配abc或者def 字符串的結(jié)合優(yōu)先于選擇
/ab(c|d)ef/ 匹配 abcef 或者 abdef
十二、模式單元 ()
改變優(yōu)先級(jí)
將多個(gè)原子視為一個(gè)原子
可以將括號(hào)的內(nèi)容在函數(shù)的輔助下反向引用
$preg ='/\d{2}(\d{2})-\1-\1\s*\1:\1:\1/';
$str = "2018-18-18 18:18:18";
☆☆☆
反向引用 是目標(biāo)字符串中有重復(fù)內(nèi)容的時(shí)候可以這么用 但是如果只是模式一樣 那是不行的
第幾個(gè)括號(hào) 后面就用\幾來(lái)代替。
十三、模式修正符
i 忽略大小寫
x 忽略正則表達(dá)式空白
s 視為一行 .可以匹配\n的
m 視為多行 .不可以匹配\n
U 改變貪婪模式 .*默認(rèn)就是貪婪模式 .*? 默認(rèn)就是非貪婪模式。
文件系統(tǒng)
------------------
一、文件系統(tǒng)概念
php的文件系統(tǒng)不是一個(gè)系統(tǒng),是php處理文件的一個(gè)擴(kuò)展模塊,給我們提供了一組操作文件的函數(shù)。
二、文件類型及屬性
1.文件類型
函數(shù)filetype() 獲取文件的具體類型
windows 類型:
file 文件類型
dir 目錄類型
unknown 未知類型
linux 下類型:
file 文件類型
dir 目錄類型
unknown 未知類型
block 塊設(shè)備類型,例如某個(gè)磁盤、軟驅(qū)、光驅(qū)CD-ROM等
char 字符設(shè)備,就是輸入端 鍵盤 打印機(jī)等
link 符號(hào)鏈接,快捷方式
2. 文件類型判斷
is_dir -- 判斷給定的文件是否是一個(gè)目錄
is_file() -- 判斷給定的是不是一個(gè)正常文件
is_executable() --判斷給定的文件是否是可執(zhí)行
is_readable() -- 判斷給定的文件名是否可讀
is_writable() -- 判斷給定的文件名是否可寫
3. 文件的屬性
file_exists() 檢測(cè)文件是否存在 文件名 存在返回true 不存在false
filesize() 獲取文件的大小 文件名 返回大小 字節(jié)數(shù) 出錯(cuò):false
注意:filesize不能統(tǒng)計(jì)目錄大小,只能獲取文件大小。
filectime() 獲取文件的創(chuàng)建時(shí)間 文件名 返回 unix時(shí)間戳格式
filemtime() 獲取文件的修改時(shí)間 文件名 返回 unix時(shí)間戳格式
fileatime() 獲取文件的訪問(wèn)時(shí)間 文件名 返回unix時(shí)間戳格式
(和我們的系統(tǒng)有關(guān)系 如果你是linux 系統(tǒng)可以使用 windows系統(tǒng)有差別)
stat() 獲取文件大部分屬性 文件 返回一個(gè)給定的屬性信息的數(shù)組
關(guān)聯(lián)鍵名(自 PHP 4.0.6)說(shuō)明
dev device number - 設(shè)備名
ino inode number - inode 號(hào)碼
mode inode protection mode - inode 保護(hù)模式
nlink number of links - 被連接數(shù)目
uid userid of owner - 所有者的用戶 id
gid groupid of owner- 所有者的組 id
rdev device type, if inode device * - 設(shè)備類型,如果是 inode 設(shè)備的話
size size in bytes - 文件大小的字節(jié)數(shù)
atime time of last access (unix timestamp) - 上次訪問(wèn)時(shí)間(Unix 時(shí)間戳)
mtime time of last modification (unix timestamp) - 上次修改時(shí)間(Unix 時(shí)間戳)
ctime time of last change (unix timestamp) - 上次改變時(shí)間(Unix 時(shí)間戳)
blksize blocksize of filesystem IO * - 文件系統(tǒng) IO 的塊大小
blocks number of blocks allocated - 所占據(jù)塊的數(shù)目
三、 目錄操作
1.解析目錄路徑
常用的文件目錄路徑格式:
$unixpath = ‘/var/www/html/index.php’;
在unix系統(tǒng)中的絕對(duì)路徑 必須使用’/’分隔
$winpath =’C:\wamp\www\oto\ss19\A24_php14\demo.php’;
在window系統(tǒng)中的絕對(duì)路徑 默認(rèn)使用’\’分隔
$winpath =’C:/wamp/www/oto/ss19/A24_php14/demo.php’;
在window系統(tǒng)中也可以使用’/’分隔
注意使用絕對(duì)路徑與相對(duì)路徑
basename -- 返回路徑中的文件名部分
dirname --返回路徑中的目錄部分
pathinfo() -- 返回文件路徑信息 返回一個(gè)數(shù)組 你可以根據(jù)下標(biāo)來(lái)獲取里面的值
PATHINFO_DIRNAME 獲取目錄部分
PATHINFO_BASENAME 獲取文件名部分
PATHINFO_EXTENSION 獲取后綴名
PATHINFO_FILENAME 獲取文件名
2.遍歷目錄
opendir() -- 打開(kāi)目錄 返回一個(gè)資源
readdir() -- 讀取目錄
closedir() -- 關(guān)閉目錄
3. 統(tǒng)計(jì)磁盤大小
disk_free_space() -- 返回目錄可用空間 單位為字節(jié)
disk_total_space() -- 返回目錄總空間 單位為字節(jié)
4. 建立與刪除目錄
mkdir -- 新建目錄
第一個(gè)參數(shù) 要?jiǎng)?chuàng)建的目錄路徑
第二個(gè)參數(shù) 是權(quán)限 ‘777’
第三個(gè)參數(shù) 是否遞歸
rmdir -- 刪除空目錄
5. 創(chuàng)建與刪除文件
touch -- 創(chuàng)建一個(gè)空文件
unlink -- 刪除文件
6.打開(kāi)文件
fopen() --打開(kāi)文件 返回值是一個(gè)資源 我們也叫做文件句柄
第一個(gè)參數(shù) 要打開(kāi)文件的路徑
第二個(gè)參數(shù) 要以什么模式打開(kāi)
r 只讀方式
w 只寫方式 清空文件,從頭開(kāi)始寫 如果文件不存在則創(chuàng)建
a 只寫方式 追加模式 如果文件不存在則創(chuàng)建
r+ 讀寫方式打開(kāi) 從頭開(kāi)始覆蓋
w+ 讀寫方式打開(kāi) 清空文件 從頭開(kāi)始寫
a+ 讀寫方式打開(kāi) 如果寫則是追加方式
x 只寫方式開(kāi)打 如果文件存在則報(bào)錯(cuò)
x+ 創(chuàng)建并讀寫方式打開(kāi) 將文件指針指向文件頭如果文件已存在則報(bào)錯(cuò),如果文件
不存在則嘗試創(chuàng)建之
7.寫入文件
fwrite -- 寫入文件
第一個(gè)參數(shù) 打開(kāi)文件的資源
第二個(gè)參數(shù) 要寫的字符串
file_put_contents()-- 寫入文件
第一個(gè)參數(shù): 要寫入的文件名
第二個(gè)參數(shù):寫入的內(nèi)容
8.讀取文件內(nèi)容
fread() 讀取文件內(nèi)容
第一個(gè)參數(shù) 打開(kāi)文件的資源
第二個(gè)參數(shù) 要讀取文件的大小
file_get_contents() --將文件讀入字符串,一個(gè)參數(shù) 文件名
fgets() 從打開(kāi)的文件中讀取一行
fgetc() 從打開(kāi)的文件中讀取一個(gè)字節(jié)
file() 把文件讀入一個(gè)數(shù)組中
readfile() 把文件直接讀取到當(dāng)前頁(yè)面 不需要打印
9.重置指針
rewind() -- 重置指針 一個(gè)參數(shù) 打開(kāi)文件的資源
10.復(fù)制文件
copy -- 拷貝文件(不能拷貝目錄)
第一個(gè)參數(shù) 你要拷貝的文件路徑
第二個(gè)參數(shù) 你要拷貝到什么地方的路徑
11.通過(guò)操作
rename -- 重命名一個(gè)文件或目錄
第一個(gè)參數(shù) 老文件名(路徑)
第二個(gè)參數(shù) 新文件名(路徑)
統(tǒng)計(jì)目錄大小
刪除目錄(如果你是刪除目錄 請(qǐng)一定要注意你的兩個(gè)特殊目錄必須排除)