萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP常用函數和常見疑難問題解答

PHP常用函數和常見疑難問題解答

雖然PHP在整體功能上不如Java強大,但相比PHP而言Java算是較重量級的,所以在小中型系統的開發上,使用PHP的趨勢不可擋,就算是大型網站,比如淘寶也部分使用了PHP(Java後台邏輯+PHP前台展示),所以趕緊開始學PHP啦

首先介紹下比較簡單但必不可少且實用的知識,可以當手冊查詢,適合像我一樣的新手看。

 

PHP常用庫函數介紹

 

一、PHP字符串操作常用函數

1.確定字符串長度 

int strlen(string str)

2.比較兩個字符串

a. strcmp函數對兩個字符串進行二進制安全的比較,並區分大小寫

int strcmp(string str1,string str2)

b. 以不區分大小寫的方式比較兩個字符串

int strcasecmp(string str1,string str2)

 

3.求兩個字符串相同部分

int strspn(string str1,string str2)

4.求兩個字符串的不同部分

5.int strcspn(string str1,string str2)

6.處理字符串大小寫

a. 將字符串全部轉換為小寫

string strtolower(string str)

b. 將字符串全部轉化為大寫

string strtoupper(string str)

c. 將字符串第一個字符大寫

string ucfirst(string str)

d. 把字符串中每個單詞的首字符轉換為大寫

string ucwords(string str)

7.字符串與HTML相互轉換

a. 將換行符轉換為HTML終止標記

string bl2br(string str)

b. 將特殊字符轉換wieldHTML等價形式(不解析格式)

string htmlentities(string str[,int quote_style[,int charset]])

string htmlspecialchars(string str[,int quote_style[,string charset]])

c. 將HTML轉換為純文本,移除所有的php和html標簽

string strip_tags(string str[,string allowable_tags])

d. 將文本轉換為HTML等價形式

array get_html_translaction_table(int table[,int quote_style])

e. 創建一個自定義的轉換清單

string strtr(string str,array replacements)

8.正則表達式函數的替代函數

a. strtok函數根據預定義的字符串列表來解析字符串

string strtok(string str,string tokens):返回直到遇到tokens之前的所有內容

b. 根據預定義的定界符分析字符串

array explode(string separator,string str[,int limit]):分割字符串

c. 將數組轉換為字符串

string implode(string delimiter, array array)

d. 找到字符串的第一次出現

int strpos(string str,string substr[,int offset])

e. 找到字符串的最後一次出現

int strrpos(string str,char substr[,offset])

f. 用另外一個字符串替代字符串的所有實例

mixed str_replace(string occurrence,mixed replacement,mixed str[,int count])

g. 獲取字符串的一部分strstr返回字符串中預定義字符串第一次出現開始的剩余部分

string strstr(string str,string occurrence)

h. 根據預定義的偏移返回字符串一部分

string substr(string str,int start[,ing length]):start可為負數,表示倒數第幾開始

i. 確定字符串出現的頻率

int substr_count(string str,string substring)

j. 用另一個字符串替換一個字符串的一部分

string substr_replace(string str,string replacement,int start[,int length])

9.填充和剔除字符串

a. 從字符串開始出裁剪字符

string ltrim(string str[,string charliset])

b. 從字符串結尾裁剪字符

string rtrim(string str[,string charliset])

c. 從字符串兩端裁剪字符

string trim(string str[,string charliset])

d. 填充字符串

string str_pad(string str,int length[,string pad_string[,int pad_type]])

10.字符和單詞計數

a. 字符串中字符計數

mixed count_chars(string str[,mode])

b. 字符串中單詞總數計數

mixed str_word_count(string str[,int format])

二、PHP Web開發中常用的三個表單驗證函數

 

(1)isset();——適合於檢測是否存在這個參數。用來避免引用不存在的變量

 

定義和作用范圍:用於測試一個變量是否具有值(包括0,FALSE,或者一個空字串都返回true,但不能是NULL),即:“http://localhost/?fo=”也是可以通過檢測,因此不適用。但如果是“http://localhost/”參數中並不含fo參數,就可以用isset來檢測,此時isset($_GET['fo'])返回false

 

不適用於:該函數不適合於驗證html表單中的文本的有效方式。要檢查用戶輸入文本是否有效,可以用empty();

 

(2)empty();——最好用的一個函數,用於檢查變量是否具有空值

 

 定義和作用范圍:用於檢查變量是否具有空值:包括:空字串,0,null 或false,這些都返回false,即:“http://localhost/?fo=”或“http://localhost/?fo=0”時,empty檢測出來的結果都是ture

 

不適用范圍:不適用於檢測可為0的參數

 

(3)is_numeric();——檢查變量是否為數字

 

定義和作用范圍:檢查變量是否為數字,只適用於檢測數字

 

不適用范圍:但假如參數名不存在,會出錯,因此不適合於第一層檢測

 

另外還有一個好用的驗證函數是checkdate(month,day,$year),用來確認某個日期是否存在或在過去是否存在

 

綜合示例:

 

這是表單:

代碼如下:

<!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>表單驗證示例</title>

</head>

<body>

</body>

<p>

<a href="?fo=Jack">傳有效值</a> <a href="?fo=">傳空值</a> <a href="?fo=0">傳0值</a>

<br /><br />

<a href="?sex=m">性別:男</a> <a href="?sex=f">性別:女</a>

<br /><br />

<a href="/">清空</a>

<br /><br />

<input type="text" value="<?php echo $_GET['fo']!=''?$_GET['fo']:'';?>" size="155" />

</p>

</html>[code]

這是驗證

[code]<?php

ini_set("display_errors",1);

//ini_set("error_reporting",E_ALL); print_r

error_reporting(E_ALL);

 

$a=NULL;

if(isset($a))echo '變量$a的isset為真';

 

echo '<h2>isset的情形:</h2>';

if(isset($_GET['fo'])){

echo '變量'fo'的isset為真,變量可用';

}else{

echo '變量'fo'的isset為假,無變量設置';

}

 

echo '<h2>empty的情形:</h2>';

if(empty($_GET['fo'])){

echo '變量'fo'的empty為真,即空值或無效值';

}else{

echo '變量'fo'的empty為假,有值';

}

 

echo '<h2>is_numeric的情形:</h2>';

if(is_numeric($_GET['fo'])){ //在參數中無fo參數時,則出錯。

echo '變量'fo'的is_numeric為真,是數字';

}else{

echo '變量'fo'的is_numeric為假,不是數字';

}

 

echo "<h2>$_GET['fo']=''的情形:</h2>";

if($_GET['fo']==''){ //在參數中無fo參數時,則出錯。

echo 'fo無值,空的字符串';

}elseif($_GET['fo']!=''){

echo 'fo有值,不為''.';

}

 

echo "<h2>$_GET['sex']='m'的情形:</h2>";

if($_GET['sex']=='m'){ //當參數中無sex變量時就會出錯。

echo '男的';

}elseif($_GET['sex']=='f'){

echo '女的';

}

?>

 

 

三、其他常用庫函數

 

(1)ini_set ini_get——可操作配置參數列表

為了使自己的程序在不同的平台中擁有更好的兼容性,很多時候我們都要獲取當前Php的運行環境參數。

比如我們常用到的:

獲取 magic_quotes_gpc 狀態,來決定當表單提交時我們是否轉義(addslashes)數據;

設定 max_execution_time 來延長程序的執行時間;

設定 error_reporting 使自己的項目在開發與運營階段切換;

設定 memory_limit 加大內存等等…

copyright © 萬盛學電腦網 all rights reserved