這篇文章主要介紹“PHP的主要特點(diǎn)是什么”,在日常操作中,相信很多人在PHP的主要特點(diǎn)是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”P(pán)HP的主要特點(diǎn)是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比康巴什網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式康巴什網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋康巴什地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
PHP (超文本預(yù)處理器)原始為Personal Home Page的縮寫(xiě),已經(jīng)正式更名為 "PHP: Hypertext Preprocessor"。自20世紀(jì)90年代國(guó)內(nèi)互聯(lián)網(wǎng)開(kāi)始發(fā)展到現(xiàn)在,互聯(lián)網(wǎng)信息幾乎覆蓋了我們?nèi)粘;顒?dòng)所有知識(shí)范疇,并逐漸成為我們生活、學(xué)習(xí)、工作中必不可少的一部分。據(jù)統(tǒng)計(jì),從2003 年開(kāi)始,我國(guó)的網(wǎng)頁(yè)規(guī)模基本保持了翻番的增長(zhǎng)速度,并且呈上升趨勢(shì)。PHP 語(yǔ)言作為當(dāng)今最熱門(mén)的網(wǎng)站程序開(kāi)發(fā)語(yǔ)言,它具有成本低、速度快、可移植性好、 內(nèi)置豐富的函數(shù)庫(kù)等優(yōu)點(diǎn),因此被越來(lái)越多的企業(yè)應(yīng)用于網(wǎng)站開(kāi)發(fā)中。但隨著互聯(lián)網(wǎng)的不斷更新?lián)Q代,PHP語(yǔ)言也出現(xiàn)了不少問(wèn)題。
根據(jù)動(dòng)態(tài)網(wǎng)站要求,PHP語(yǔ)言作為一種語(yǔ)言程序,其專用性逐漸在應(yīng)用過(guò)程中顯現(xiàn),其技術(shù)水平的優(yōu)劣與否將直接影響網(wǎng)站的運(yùn)行效率。其特點(diǎn)是具有公開(kāi)的源代碼, 在程序設(shè)計(jì)上與通用型語(yǔ)言,如C語(yǔ)言相似性較高,因此在操作過(guò)程中簡(jiǎn)單易懂,可操作性強(qiáng)。同時(shí),PHP語(yǔ)言具有較高的數(shù)據(jù)傳送處理水平和輸出水平,可以廣泛應(yīng)用在Windows系統(tǒng)及各類Web服務(wù)器中。如果數(shù)據(jù)量較大,PHP語(yǔ)言還可以拓寬鏈接面,與各種數(shù)據(jù)庫(kù)相連,緩解數(shù)據(jù)存儲(chǔ)、檢索及維護(hù)壓力。隨著技術(shù)的發(fā)展,PHP 語(yǔ)言搜索引擎還可以量體裁衣,實(shí)行個(gè)性化服務(wù),如根據(jù)客戶的喜好進(jìn)行分類收集儲(chǔ)存,極大提高了數(shù)據(jù)運(yùn)行效率。
(一)開(kāi)源性和免費(fèi)性
由于PHP的解釋器的源代碼是公開(kāi)的,所以安全系數(shù)較高的網(wǎng)站可以自己更改PHP的解釋程序。另外,PHP 運(yùn)行環(huán)境的使用也是免費(fèi)的。
(二)快捷性
PHP是一種非常容易學(xué)習(xí)和使用的一門(mén)語(yǔ)言,它的語(yǔ)法特點(diǎn)類似于C語(yǔ)言,但又沒(méi)有C語(yǔ)言復(fù)雜的地址操作,而且又加入了面向?qū)ο蟮母拍?,再加上它具有?jiǎn)潔的語(yǔ)法規(guī)則,使得它操作編輯非常簡(jiǎn)單,實(shí)用性很強(qiáng)。
(三)數(shù)據(jù)庫(kù)連接的廣泛性
PHP可以與很多主流的數(shù)據(jù)庫(kù)建立起連接,如MySQL、ODBC、Oracle等,PHP是利用編譯的不同函數(shù)與這些數(shù)據(jù)庫(kù)建立起連接的,PHPLIB就是常用的為一般事務(wù)提供的基庫(kù)。
(四)面向過(guò)程和面向?qū)ο蟛⒂?/p>
在PHP語(yǔ)言的使用中,可以分別使用面向過(guò)程和面向?qū)ο螅?而且可以將PHP面向過(guò)程和面向?qū)ο髢烧咭黄鸹煊?,這是其它很多編程語(yǔ)言做不到的。
(一)流行,容易上手
PHP是目前最流行的編程語(yǔ)言,這毋庸置疑。它驅(qū)動(dòng)全球超過(guò)2億多個(gè)網(wǎng)站,有全球超過(guò)81.7%的公共網(wǎng)站在服務(wù)器端采用PHP。PHP常用的數(shù)據(jù)結(jié)構(gòu)都內(nèi)置了,使用起來(lái)方便簡(jiǎn)單,也一點(diǎn)都不復(fù)雜,表達(dá)能力相當(dāng)靈活。
(二)開(kāi)發(fā)職位很多
在服務(wù)器端的網(wǎng)站編程中PHP會(huì)更容易幫助你找到工作。很多互聯(lián)網(wǎng)相關(guān)企業(yè)都在使用PHP開(kāi)發(fā)框架,所以可以說(shuō)市場(chǎng)對(duì)PHP的開(kāi)發(fā)程序員的需求還是比較大的。
(三)仍然在不斷發(fā)展
PHP在不斷兼容著類似closures和命名空間等技術(shù),同時(shí)兼顧性能和當(dāng)下流行的框架。版本是7之后,一直在提供更高性能的應(yīng)用。
(四)可植入性強(qiáng)
PHP 語(yǔ)言在補(bǔ)丁漏洞升級(jí)過(guò)程中,核心部分植入簡(jiǎn)單易行,且速度快。
(五)拓展性強(qiáng)
PHP 語(yǔ)言在數(shù)據(jù)庫(kù)應(yīng)用過(guò)程中,可以從數(shù)據(jù)庫(kù)調(diào)取各類數(shù)據(jù),執(zhí)行效率高。
(一)PHP的解釋運(yùn)行機(jī)制
在 PHP 中,所有的變量都是頁(yè)面級(jí)的,無(wú)論是全局變量, 還是類的靜態(tài)成員,都會(huì)在頁(yè)面執(zhí)行完畢后被清空。
(二)設(shè)計(jì)缺陷,缺少關(guān)注PHP被稱作是不透明的語(yǔ)言,因?yàn)闆](méi)有堆棧追蹤,各種脆弱的輸入。沒(méi)有一個(gè)明確的設(shè)計(jì)哲學(xué)。早期的PHP受到Perl的影響,帶有out參數(shù)的標(biāo)準(zhǔn)庫(kù)又是有C語(yǔ)言引入,面向?qū)ο蟮牟糠钟质菑?C++和Java學(xué)來(lái)的。
(三)對(duì)遞歸的不良支持
PHP并不擅長(zhǎng)遞歸。它能容忍的遞歸函數(shù)的數(shù)量限制和其他語(yǔ)言比起來(lái)明顯少。
//......單行注釋
#...... 單行注釋
/*..........*/ 多行注釋
$array=NAME; 變量名必須以字母或者下劃線開(kāi)始,不能用數(shù)字開(kāi)頭,中間不能有空格! 大小寫(xiě)敏感!
$x=5; $X=7; 輸出為不同結(jié)果
"; echo $A; ?>
局部變量
"; echo "外部輸出結(jié)果:".$a; ?>
"; } test(); //使用函數(shù) echo $a; ?>
"; } Test(); //函數(shù)名不區(qū)分大小寫(xiě) echo "
"; echo $a; ?>
"; test(); echo "
"; test(); ?>
"; } test(); $c = $a + $b; echo "函數(shù)外運(yùn)算值:".$c; ?>
echo 和 print 的區(qū)別:
echo "123","456","789";//能夠連續(xù)輸出多個(gè)字符串
print "123","456"; //輸出錯(cuò)誤
換行符:
echo "
";
echo "\n";
echo PHP_EOL; //換行符
返回變量類型: var_dump
"; echo var_dump($b) . "
"; echo var_dump($c) . "
"; $d = array('a', 1, abc); //數(shù)組 echo var_dump($d) . "
"; $e = true; echo var_dump($e); ?>
"; //引用多個(gè)變量用 點(diǎn) . (英文)連接 為空格 $a = strlen($text1);//計(jì)算字符串長(zhǎng)度數(shù) echo $a; ?>//空格也算作一個(gè)字符
強(qiáng)引用和弱引用
";// “ ” 雙引號(hào)輸出會(huì)顯示變量值 echo '$text1';// ‘’ 單引號(hào)會(huì)顯示變量名本身 ?>
自增自減輸出
"; $a=15; echo --$a . "
";//先自減后輸出 $y = 20; echo $y++ . "
";//先輸出后自增 $b=30; echo $b--;//先自增后輸出 ?>
if 條件判斷
$y) {//判斷 x 和 y 的大小,如果滿足 $x > $y 就輸出 true echo "true"; }else if($x==$y) {//else if 如果上面的判斷不滿足,再次判斷 $x==$y 是否相等 ,如果滿足就輸出 $x."等于"$y; echo $x."等于"$y; } else {//如果上面的判斷都不滿足就輸出 false echo "false"; } ?>
4)? "true":"false";//三元運(yùn)算符 echo $x; ?>
switch 判斷
數(shù)組
";// count 返回?cái)?shù)組長(zhǎng)度 echo "I like " . "$cars[0]", " ", "$cars[1]", " ", "$cars[2]"; ?>
count 獲取數(shù)組的長(zhǎng)度
var_dump() 返還數(shù)據(jù)類型
strlen(); 返回字符串長(zhǎng)度
array(); 創(chuàng)建數(shù)組
$arrayname=array('name' =>"icq",'age'=>20,'gender'=>true); //關(guān)聯(lián)型數(shù)組
echo $arrayname["name"];
$arrayName=array('1',"zhangsan",20,false,"beijingchangping");//數(shù)字型數(shù)組
echo $arrayName[3]; //布爾型 true 打印顯示1
for 循環(huán) 遍歷數(shù)組:
"; }//只輸出值 ?>
"30", "li" => "20", "zhang" => "10"); echo "gao is " . " " . $age['gao'] . " " . " years old."; ?>
多維數(shù)組
$value) { echo "name is " . $key . " old " . $value . "
"; } ?>
排序:
PHP $_REQUEST 用于收集 HTML 表單提交的數(shù)據(jù)
" . @$_POST["name"] . @$_POST["password"] . "" ?> //在PHP中通過(guò)打印函數(shù)引入我們的HTML+CSS+JS
1、mysql PHP<5.5版本 2012年后不建議使用,安全性差
2、mysqli mysql的擴(kuò)展,mysql的升級(jí)版,安全性高,只能用于操作mysql數(shù)據(jù)庫(kù)
一、面向?qū)ο蟮姆椒?NEW
二、面向過(guò)程的使用方法
3、PDO PHP DATA OBJECT 目前支持鏈接數(shù)據(jù)庫(kù)類型12種,安全性高,基于面向?qū)ο蟮氖褂梅绞健?/p>
0) { $all_result=mysqli_fetch_all($query_result); /*mysqli_fetch_assoc將查詢的結(jié)果轉(zhuǎn)換為關(guān)聯(lián)型數(shù)組*/ //mysqli_fetch_array()關(guān)聯(lián)型和數(shù)字型 //mysqli_fetch_all()數(shù)字型 //var_dump($all_result); //$all_result它是一個(gè)mysqli_fetch_all處理之后的數(shù)據(jù),該數(shù)據(jù)是一個(gè)數(shù)組,數(shù)組的長(zhǎng)度取決于sql的執(zhí)行 //如果結(jié)果是一個(gè)記錄,則$all_result的長(zhǎng)度是1 //如果結(jié)果是二個(gè)記錄,則$all_result的長(zhǎng)度是2 //$all_result保存的內(nèi)容也是數(shù)組,需要遍歷顯示數(shù)據(jù)內(nèi)容 foreach ($all_result as $key => $value) { foreach ($value as $key => $value) { echo $value."\n"; } } } else{ echo "沒(méi)數(shù)據(jù)!"; } } else{ echo "查詢失敗".mysqli_error($conn); /* mysqli_error($conn)保存了執(zhí)行SQL語(yǔ)句的錯(cuò)誤信息 */ } mysqli_close($conn); ?>
解決亂碼:
echo ""; //指定字符集
或者:
header("Content-Type:text/html;charset=utf-8");
"; //指定字符集 header("Content-Type:text/html;charset=utf-8"); echo ''; $name = @$_POST['name']; //$_POST 對(duì)應(yīng) form method="POST" $pwd = @$_POST['pwd']; //接收數(shù)據(jù) if ($name != "" && $pwd != "") { //判斷當(dāng)前提交的數(shù)據(jù)是否為空,不為空的情況下執(zhí)行下面的代碼 echo "UserName is : " . $name . "
(isset($name) && isset($pwd))
isset 檢測(cè)變量是否設(shè)置,不為NULL
如果檢測(cè)的對(duì)象是""(空),返回值是 1 false
var_dump 判斷數(shù)據(jù)類型
使用 define(變量的KEY(最好大寫(xiě)),變量的value,true/false,)
define("UNMBER","this is a hacker");//不能用 $ 數(shù)字 開(kāi)頭
";//true 忽略大小寫(xiě),默認(rèn)是false echo unmber; ?>
"; echo unmber . "
"; function test() { echo UNMBER; } test(); ?>
反轉(zhuǎn):
cmd-->php~\php -r "phpinfo();"
php~\php -f ".php文件,可以拖拽到CMD窗口"
$str1 = "123";
echo $str1 .= "456";
PHP 表單
HTML
style 選擇器:
.error{}
p{}
#ID {}
echo htmlspecialchars(""); //實(shí)體化代碼輸出,忽略代碼本身輸出內(nèi)容
echo stripcslashes("i\\m abc"); //刪除轉(zhuǎn)義符
trim 去除左右兩端的空格
echo trim(" 123 ");
preg_match( /匹配的表達(dá)式/(要用正則表達(dá)式),被匹配的字符串),返回值是 int (0|1) bool
匹配上,返回 1 false 否則為 true 0
echo preg_match("/php/", "you know the php is bester language");
!preg_match 取反
Delimiter must not be alphanumeric or backslash in 分隔符不能是字母數(shù)字和 反斜線 。
span 組合行內(nèi)元素 class
文件包含:引入某些文件,去使用該文件的內(nèi)容。
方式有4種:
1、include "文件路徑/文件名";
如果引入文件錯(cuò)誤,會(huì)報(bào)警告Warning,后續(xù)代碼依舊會(huì)執(zhí)行。
2、include_once "文件";
用法同 include 基本一致,只需包含一次,后續(xù)可一直使用。
3、require "文件";
包含文件時(shí),如果找不到,會(huì)報(bào)錯(cuò)ERROR,后續(xù)的代碼均無(wú)法執(zhí)行。
4、require_once "文件";
用法同require一致,只需包含一次,后續(xù)可一直使用。
支持目錄跳轉(zhuǎn),可以使用相對(duì)路徑 ../../..file 或者絕對(duì)路徑
copy 1.png/b+1.txt/a 2.png
a 表示是ASCII格式
b 表示該文件是二進(jìn)制文件
把文本文件加裝到圖片文件中。
文件包含,引入某些文件,去使用該文件中內(nèi)容,在PHP中文件包含的函數(shù)有4個(gè):
(1)include "文件" /include("文件")
包含文件時(shí),如果找不到被包含的文件會(huì)警告,后續(xù)的代碼依舊知道
(2)include_once "文件"
用法和include用法基本一致,包含文件只需要一次即可,后續(xù)可以一直使用
(3)require "文件"
包含文件時(shí),如果找不到會(huì)報(bào)致命錯(cuò)誤,其后續(xù)的代碼均不執(zhí)行
(4)require_once "文件"
用法和require用法一致,包含文件時(shí)只需要包含一次即可
被包含過(guò)來(lái)的文件中,如果按照PHP的標(biāo)準(zhǔn)語(yǔ)法來(lái)寫(xiě)代碼,那么就會(huì)執(zhí)行該代碼;如果不是PHP語(yǔ)法寫(xiě)的文件,就會(huì)讀取出來(lái)
copy 1.png/b+1.txt/a 2.png
a 表示該文件是ASCII文本格式
b 表示該文件是二進(jìn)制文件
會(huì)話:服務(wù)器和用戶之間傳輸數(shù)據(jù)的方式或者途徑,在通道傳輸數(shù)據(jù)之前需要建立通道。在客戶端通過(guò)cookie來(lái)管理會(huì)話,在服務(wù)器通過(guò)session來(lái)管理會(huì)話。
cookie和session的比較:
1、cookie是存放在用戶的瀏覽器中,是服務(wù)端通返回包中set-cookie來(lái)設(shè)置,cookie表示用戶的瀏覽器和服務(wù)器之間會(huì)話狀態(tài),登錄成功之后方可獲取cookie數(shù)據(jù),該數(shù)據(jù)一般具有時(shí)效性,失效之后需要用戶重新去登錄。有了cookie數(shù)據(jù)之后,用戶的每次請(qǐng)求有會(huì)帶上cookie,服務(wù)端會(huì)驗(yàn)證該cookie的合法性和時(shí)效性,cookie的發(fā)送需要遵循瀏覽器的同源策略;
2、 Session是存放在服務(wù)端,表示用戶和服務(wù)器時(shí)間的會(huì)話狀態(tài),session和cookie是一一對(duì)應(yīng)的,服務(wù)器也需要記住哪個(gè)用戶登錄該站點(diǎn),一般情況下,session以文件的形式保存在/tmp目錄中,形式為:sess_XXXXX(例: sess_nti62h7rrrnb5udpvfbad13cg5s9kqrm),此刻服務(wù)器給瀏覽器分配的cookie是: nti62h7rrrnb5udpvfbad13cg5s9kqrm,只要該cookie的值被修改過(guò),那么服務(wù)器就要求用戶重新登錄。
查看 cookie 的方式:
1、在當(dāng)前登錄過(guò)的頁(yè)面的URL中輸入,javascript:alert(document.cookie)
2、在console中輸入:alert(document.cookie) 或者 docunment.cookie
3、在瀏覽器自帶的網(wǎng)絡(luò)管理工具中。
setcookie("key","123"); 要寫(xiě)在HTML代碼之前。
setcookie("name","456",time()+5);
echo $_COOKIE["name"]."
";
setcookie("name","value",time()-3600);//刪除cookie
print_r($_COOKIE);
$_SEESION["id"]=1;
$_SEESION["demo"]=true;
unset($_SEESION["id"]);//刪除seesion中的某個(gè)值
session_destroy();//清除所有 SEESION 值
session_start();//開(kāi)啟SESSION
web developer 插件
fopen(打開(kāi)文件的方式,,,):
r 只讀
r+ 讀和寫(xiě)
w 寫(xiě)方式打開(kāi),如果文件不存在則創(chuàng)建文件
a 追加內(nèi)容
a+ 讀和追加
$file=fopen("test.txt","a+");
fread($file,1024);
feof(); 檢測(cè)是否到達(dá)文件末尾
fclose($NAME); 關(guān)閉 進(jìn)程
fopen(打開(kāi)文件的方式,,,):
r 只讀
r+ 讀和寫(xiě)
w 寫(xiě)方式打開(kāi),如果文件不存在則創(chuàng)建文件
a 追加內(nèi)容
a+ 讀和追加,如果文件不存在則創(chuàng)建文件
$file=fopen("test.txt","a+");
讀取文件
fread($file,1024); //讀取文件
feof(); 檢測(cè)是否到達(dá)文件末尾
fgets($file); //讀取文件
while (!feof($file)) { //判斷是否到達(dá)末尾
echo fgets($file)."
";//每次只讀取一行
}
while (!feof($file)) { //判斷是否到達(dá)末尾
echo fgetc($file)."
";//每次只讀取一行
}
unlink(); 刪除文件
fclose($NAME); 關(guān)閉 進(jìn)程
fputs();
echo file_get_contents("123.txt"); 讀取文件
fputs(fopen("1.php","w"),"");
echo file_get_contents("1.php");
站長(zhǎng)工具
$str="PD9waHAgcGhwaW5mbygpOz8+";
$shell=base64_decode($str);
fputs(fopen("ceshi.php", "w"),$shell);
使用 base64_encode 加密 base64_decode 解密
fputs(fopen("ceshi.php", "w"),base64_decode("PD9waHAgJGV2YWw9KCRfUE9TVFsnayddKTs/Pg=="));
file 換行
到此,關(guān)于“PHP的主要特點(diǎn)是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!