php概述 什麼是php,PHP語言的優勢,PHP5的新特性,PHP的發展趨勢,PHP的應用領域。 PHP是超文本預處理器,是一種伺服器端,跨平臺,HTML嵌入式的腳本語言,具有c語言,Java語言,和Perl語言的特點,是一種被廣泛應用的開源式的多用途腳本語言,適合web開發。 PHP是b/s體系 ...
php概述
什麼是php,PHP語言的優勢,PHP5的新特性,PHP的發展趨勢,PHP的應用領域。
PHP是超文本預處理器,是一種伺服器端,跨平臺,HTML嵌入式的腳本語言,具有c語言,Java語言,和Perl語言的特點,是一種被廣泛應用的開源式的多用途腳本語言,適合web開發。
PHP是b/s體繫結構,屬於三層結構,PHP的好處,開發源代碼軟體,安全性高,跨平臺特性,支持廣泛的資料庫,易學性,執行速度快,免費,模板化,支持面向對象與過程,內嵌zend加速引擎。
PHP5的新特性,構造函數和析構函數,對象的引用,克隆,私有等,介面,抽象類,_call,_set,_get,靜態成員。
PHP應用,中小型網站的開發,web管理系統,企業級應用開發,多媒體系統開發等。
PHP的擴展庫,內置標準擴展庫,PHP5,spl,sqlite,dom,mysql等,需要在php.ini文件來完成。
php.ini找.dll,所有擴展庫。
學習語言的方法,明確自己的學習目標和方向,扎實的基礎,多實踐,多思考,多請教等。
創建網站,明確網站主題,收集材料,規劃網站,製作網站,上傳,宣傳,維護。
PHP開發工具,dreamweaver,zendstudio,editplus2等。
使用appserv組合包,完成apache+mysql+php+phpmyadmin的安裝與配置。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>第一個PHP程式</title>
</head>
<body>
<?php
echo "Hello World!!!";
?>
</body>
</html>
php的標記風格,註解分類,數據類型,常量,變數,運算符,表達式,函數,編碼規範
xml風格:
<?php
echo "dashucoding";
?>
腳本風格:
<script language="php">
echo "dashucoding";
</script>
簡短風格:
<?
echo 'dashucoding';
?>
asp風格:
<%
echo 'dashucoding';
%>
共4種
註解
// 單行註解
/**/ 多行註解
# shell風格的註解
php數據類型:標量數據類型,複合數據類型,特殊數據類型,轉換數據類型。
8種原始類型,分4中標量類型,boolean布爾型,integer整型,float/double浮點型,string字元串型;兩種複合類型,arrray數組,object對象;兩種特殊類型,resource資源,null。
標量數據類型是數據結構中最基本的單元,只能存儲一個數據,PHP標量數據類型有4種。
單引號和雙引號,雙引號可以將變數自動替換成實際數值,而引號將變數按照普通字元串輸出。
定義字元串的三種方式:單引號,雙引號,界定符。
轉義字元
\n 換行
\r 回車
\t 水平製表符
\\ 反斜杠
\$ 美元符號
\' 單引號
\'' 雙引號
界定符格式:
$string = <<< str
輸出字元串
str;
<?php
echo <<< str
字元串
str;
?>
界定符中結束標識符必須要單獨另起一行,並不可以用空格。
複合數據類型有 兩種,一種為 數組,一種為 對象。
$array = ('value1','value2',...);
$array[key] = 'value';
$array = array(key1 => value1, key2 => value2 ...);
特殊數據類型包含 資源 和 空值 兩種。
資源是一種特殊的變數,可叫句柄,保存在外資源的一個引用,通過專門的函數來建立和使用,null為特殊的值,表示變數沒有值。
使用資源類型時,系統會自動啟動垃圾回收機制,釋放不再使用的資源。
空值出現的情況,還沒有賦值,被賦值為null,被unset()函數處理過的變數。
轉換數據類型
boolean 轉換布爾型
null,0,和未賦值或數組為false,false為0,true為1
string 轉換字元型
integer 轉換整型
float 轉換浮點型
array 轉換數組
object 轉換對象
settype()用於類型轉換,將指定的變數轉換為指定的數據類型
bool settype(mixed var, string type)
第一個參數為指定的變數,第二個參數為指定的類型,參數type為boolean,float,integer,array,object,null,string。
使用integer操作符能夠可以直接輸出轉換後的變數類型,使用settype()返回的是boolean類型。第一種原變數不會發生變化,第二種原變數被改變了。
檢測數據類型
is_bool檢測變數是否是布爾類型
is_string檢測變數是否是字元串類型
is_float/is_double 檢測變數是否為浮點類型
is_null 檢測變數是否為整數
is_array 檢測變數是否為數組
is_object 檢測變數是對象類型
is_numeric 檢測變數是否為數字
is_integer/is_int 檢測變數是否為整數
php常量,聲明和使用常量,預定義常量
常量是不可變的值,被定義後,不管怎樣都不會被改變。
使用define()函數來定義常量
define(string constant_name, mixed value, case_sensitive = true)
函數定義一個常量
常量名稱, 常量值, 指定是否大小寫敏感
mixed constant(string const_name);
函數動態獲取常量的值,常量名直接獲取,另一種為constant()
判斷一個常量是否被定義:
bool defined(string constant_name);
預定義常量
__FILE__ 文件名
__LINE__ 程式員行數
PHP_VERSION 程式的版本
PHP_OS 操作系統名稱
TRUE FALSE NULL
E_ERROR E_WARNING E_PARSE E_NOTICE
php變數,聲明和使用變數,變數的作用域,可變變數,預定義變數
變數是在程式執行過程中數值中可以變化的量
php預定義變數
預定義變數可以獲取用戶會話,用戶操作系統等信息。
$_SERVER['SERVER_ADDR'] 當前腳本所在的伺服器的ip地址
$_SERVER['SERVER_NAME'] 伺服器主機名
$_SERVER['REQUEST_METHOD'] 訪問頁面時的請求方法
$_SERVER['REMOTE_ADDR'] 正在瀏覽當前頁面用戶的IP地址
$_SERVER['REMOTE_HOST'] 正在瀏覽當前頁面用戶的主機名
$_SERVER['REMOTE_PORT'] 伺服器使用的埠
$_SERVER['SCRIPT_FILENAME'] 當前執行腳本的絕對路徑名
$_SERVER['SERVER_PORT'] 伺服器所使用的埠
$_SERVER['SERVER_SIGNATURE'] 伺服器版本和虛擬主機名的字元串
$_SERVER['DOCUMENT_ROOT'] 當前運行腳本所在的文檔根目錄
$_COOKIE 通過HTTPCookie傳遞到腳本的信息
$_SESSION 包含與所有會話變數有關的信息
$GLOBALS 已定義全局變數組成的數組
$_POST 通過POST方法傳遞的參數的相關信息
$_GET 通過GET方法傳遞的參數的相關信息
php運算符
算術運算符,字元串運算符,賦值運算符,位運算符,邏輯運算符,比較運算符,錯誤控制運算符,三元運算符,優先順序。
錯誤控制運算符
@用於對錯誤信息進行屏蔽而已
<?php
$err = @(3/0);
?>
三元運算符-三目運算符
<?php
$value=10;
echo ($value == true)? dashu : dashucoding;
?>
php函數,定義和調用函數,函數間的傳遞參數,函數中返回值,變數函數,對函數的引用,取消引用。
定義和調用函數,將功能寫在代碼塊中:
function name($str1,...){
}
函數傳參,被傳入的參數為實參,定義的參數為形參。
參數傳遞有三種:
- 按照值傳遞
- 按照引用傳遞
- 預設參數
<?php
function add($m){
$m = $m+1;
echo "體內".$m;
}
$m=1;
add($m);
echo "體外".$m;
?>
結果, 函數內:$m為2,體外為1
傳引用 使用&
<?php
function add(&$m){
$m = $m+1;
echo "體內".$m;
}
$m=1;
add($m);
echo "體外".$m;
?>
從函數中返回值return()。
變數函數,對函數的引用,取消引用。
<?php
function &add($a=0){
return $a;
}
$str = &add('dashucoding');
echo $str;
?>
unset()函數取消引用,用於斷開變數名和變數內容之間的綁定,而不是銷毀變數的內容。
什麼是PHP編碼規範,書寫規則和命名規則
PHP的數據類型,常量,變數,運算符,表達式,自定義函數,數據類型之間的轉換,系統預定義常量,變數,運算符的優先順序等。
流程式控制制語句
if語句,if...else語句,elseif語句,switch...case語句
while迴圈,do...while迴圈,for迴圈,foreach迴圈,break/continue語句等。
break/continue語句,break關鍵字終止當前的迴圈,跳出多重迴圈,break $num; continue只是終止本次迴圈。
foreach($arr as $key => $value){
echo $key.'=>';
foreach($value as $va){
echo ' " '.$va.' " ';
}
echo '<br>';
}
字元串,單引號,雙引號,字元串連接符,字元串操作
字元串是由零個或多個字元組成的一個集合
單引號和雙引號的區別,單引號中的內容是只能被作為普通字元串處理,雙引號的作用可以被解釋。sql查詢時,所有字元串都必須是單引號。
字元串操作:
trim()函數去除字元串左右兩邊的空格和特殊字元
ltrim()去除左邊的空格和特殊字元
rtrim()去除右邊的空格和特殊字元
string trim(string str [,string charlist]);
string ltrim( string str [,string charlist]);
String rtrim(string str [,string charlist]);
字元串的三種定義方法:
- 單引號
- 雙引號
- 界定符
//轉義、還原字元串數據
addslashes()函數
string addslashes (string str)
stripslashes()函數
string stripslashes(string str);
addcslashes()函數
string addcslashes (string str, string charlist)
stripcslashes()函數
string stripcslashes (string str)
int strlen(string str)
獲取指定字元串str的長度
string substr ( string str, int start [, int length])
截取字元串
比較字元串
strcmp()函數按照位元組進行比較
strcmp()和strcasecmp()
int strcmp ( string str1, string str2)
strnatcmp()函數按照自然排序法進行比較
int strnatcmp ( string str1, string str2)
strncmp()函數指定從源字元串的位置開始比較
int strncmp(string str1,string str2,int len)
查找字元串strstr()函數
string strstr(string haystack, string needle)
// strstr()函數獲取上傳圖片的尾碼
<form method="post" action="index.php" enctype="multipart/form-data">
<input type="hidden" name="action" value="upload"/>
<input type="file" name="u_file"/>
<input type="submit" value="上傳"/>
</form>
<?php
if($_POST[action] == "upload") {
$file_path="./uploads\\";
$picture_name=$_FILES[u_file][name];
$picture_name=strstr($picture_name,".");
if($picture_name != ".jpg"){
echo"<script>alert();window.location.href="index.php";</script>";
}elseif($_FILES[u_file][tmp_name]{
move_uploaded_file();
}else
echo"";
}
}
?>
<body>
<center>
<label>請選擇要上傳的圖片(圖片格式為.jpg):</label>
<form method="post" action="index.php" enctype="multipart/form-data">
<input type="hidden" name="action" value="upload" />
<input type="file" name="u_file"/>
<input type="submit" value="上傳" />
</form>
<?php
if($_POST[action] == "upload"){ //判斷提交按鈕是否為空
$file_path = "./uploads\\"; //定義圖片在伺服器中的存儲位置
$picture_name=$_FILES[u_file][name]; //獲取上傳圖片的名稱
$picture_name=strstr($picture_name , "."); //通過strstr()函數截取上傳圖片的尾碼
if($picture_name!= ".jpg"){ //根據尾碼判斷上傳圖片的格式是否符合要求
echo "<script>alert('上傳圖片格式不正確,請重新上傳'); window.location.href='index.php';</script>";
}else if($_FILES[u_file][tmp_name]){
move_uploaded_file($_FILES[u_file][tmp_name],$file_path.$_FILES[u_file][name]); //執行圖片上傳
echo "圖片上傳成功!";
}
else
echo "上傳圖片失敗";
}
?>
</center>
</body>
substr_count()函數檢索字元串出現的次數
int substr_count(string haystack, string needle)
<?php
$str="";
echo substr_count($str,"");
?>
替換字元串
str_ireplace()函數使用新的字元串替換原始字元串中被指定要替換的字元串。
mixed str_ireplace(mixed search,mixed replace, mixed subject[,int &count])
substr_replace()函數
對指定字元串中的部分字元串進行替換
格式化字元串
string number_format(float number,[int
num_decimal_places],[string dec_seperator],string
thousands_ seperator)
分割字元串
array explode(string separator,string str,[int limit])
合成字元串
string implode(string glue, array pieces)
<body>
<?php
$str="\r\r(:@_@ dashu @_@:) ";
echo trim($str);
echo "<br>";
echo trim($str,"\r\r(: :)");
?>
</body>
<?php
$content = "北京,上海,天津,重慶,河北,山西,遼寧,吉林,黑龍江,江蘇,浙江,安徽,福建,江西,山東,河南,湖北,湖南,其他";
$data=explode(",",$content);
for($index=0;$index<count($data);$index++){ //數組迴圈
echo $data[$index];
echo "</br>";
}
?>
結言
好了,歡迎在留言區留言,與大家分享你的經驗和心得。
感謝你學習今天的內容,如果你覺得這篇文章對你有幫助的話,也歡迎把它分享給更多的朋友,感謝。
感謝!承蒙關照!您真誠的贊賞是我前進的最大動力!