php中一些常用且好用的字符處理函數(一)

自己總結了一些自己曾經使用的字符處理函數。共勉。。。

張存超php技術博客


到目前爲止我其實還是算是一個php新手,這是我係統學習的第一個編程語言,其實所有的編程語言都是有共通之處的,就我的理解而言,所有的操作其實都是對字符的操作,我們通過判斷字符的有無或者字符的具體的值是多少,進而來確定執行什麼操作,而這所謂的操作其實也是對字符的操作,要麼讀取,要麼添加,要麼修改,要麼刪除。而程序的基本就是循環和分支。

所有的功能的操作都不會只有一種方法,都會有很多方法達到目的,但是當我們已經可以達到目的的時候就不能只單單的停留在功能的實現上,就應該考慮優化,就應該考慮如何更高效的完成任務達到目的。而這些函數對於我們這些苦命的phper而言,就應了那一句話“文章本天成,妙手偶得之!”。

其實所有的功能的實現都是可行的,也就是說我們的需求,我們想要實現的功能都是可以實現和做到的,方法已經在那裏了,就等着我們去發現。要相信程序可以實現任何功能。只是有優劣之分罷了。下面就具體的說幾個常用而又好用的字符處理函數。

1、 str_ireplace函數

字符替換函數,其實正則函數也有替換函數,但是,能用函數直接實現的最好還是用php自帶的函數。而如果字符比較複雜,再使用正則。正則其實也非常的簡單。

他雖然叫替換函數,但是,我們其實可以轉變一下思路,他完全可以用來將某些字符清空。

例str_ireplace(‘<’,”,$content);就是將<清空。這樣的應用很廣。我在我的博客《織夢獲取最新文章和連接的接口》中就有提到了這個應用。str_replace函數和他一樣,只是前個函數對大小寫不敏感,這個對大小寫敏感。

2、 explode函數

explode(以什麼分割,要分割的字符);這是個使用頻率很高的函數,和他對應的就是implode()函數,implode鏈接函數,implode (“以什麼連接,要連接的數組)=join函數。這兩個函數結合使用可以取得很大的功效。很多時候,有的人在用“,”鏈接字符串的時候,用循環。其實,那樣的話會在後面或前面多出一個“,”,而用implode函數就不會。這樣可以應用於批量處理,比如一個多選框。提交後是數組的形式,我們要批量的刪除,可以用implode用“,”來鏈接,然後在sql語句中使用where in($arry)來實現。

3、 strstr(a,b) 和strrchr(a,b)函數。

前一個是獲取ab第一次出現位置後的所有字符,後一個是獲取ab最後一次出現位置後的所有字符。後一個有一個非常好的妙用。那就是我們應該都有做過文件上傳功能。在做這個功能的時候一定會遇到的就是獲得文件的後綴,以前我們學習的時候是獲取文件名後,用前面的explode函數分割,然後取第二個參數。但是,這樣有個問題,就是如果文件的名字爲xx.xx.jpg這樣就會出錯誤了,當然我們可以獲得數組的最後一個參數,但是這樣也不好,太麻煩,而用strrchr(‘.’,文件名)這樣就可以獲得.後綴名,我覺得還是比較方便的。

4、 htmlentities函數

這個函數可能有很多人並沒有使用過,但是這卻是個非常有用很強大的一個函數。我們都知道php有防止sql注入的函數addslashes,其實他的作用也類似。我們都知道如果我們echo ‘<div></div>’;我們是無法看到的,但是查看下源碼是能看到的,這就是因爲輸出的是html的關鍵字,被轉譯了。而有的時候,我們是需要是輸出這些標籤的,不單單是發類似的這種技術類的文章,還有就是有的時候我們使用一些接口類的程序,我們想對返回的值進行一些操作,但是返回的值都是html的關鍵字。我們看不到,就無從下手了,這時候,我們就可以用到這個函數來做調試。

 

5、urlencode函數

urlencode($filename);//轉碼,將中文轉換成%數,將空格轉換爲+。空格爲%20。這是一個轉碼函數,很多時候,我們都會因爲中文字符的編碼而頭疼,總是會有亂碼,尤其是我們在使用ajax的時候,會發現,有的時候ajax傳遞的中文經常出現亂碼,要想編碼統一,其實有四個地方需要注意,第一個是文件本身的格式,這個是很多人會忽略掉的,用editplus打開文件,會看到右下角,有個文件本身的編碼默認的是ANSI,而如果你要使用utf8就需要文件另存,保存爲utf8,還有就是html中的charset=utf-8″,然後是數據庫連接函數中mysql_query(“SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary”,$con);最後一步就是數據庫存儲字段用到的編碼格式,要使用utf8這樣才能編碼統一。而用這個函數就可以轉換爲數字和英文,這樣不容易出現編碼問題,當然接受的時候需要用UrlEncode來進行反轉碼。

6、寫入文件函數

很多人不知道給文件寫入數據的時候如何寫入換行,我們以fwrite($file, “\r\n”);爲例,如果將雙引號改爲單引號就不能寫入換行,爲什麼,這就是php的一個機制,php會解析雙引號裏面的東西,而會將單引號的內容原樣使用。所以,在不需要操作內部的數據的時候用單引號要快一些。既然提到了文件函數,這裏說個file(file) 將文件每行付給一個數組,file_get_content(file) 將文件內容付給一個字符。這兩個是有很大不同的。明白他們的不同可以有很大的用處。

7、pathinfo() 函數以數組的形式返回文件路徑的信息。

<?php

print_r(pathinfo(“/testweb/test.txt”));

?>

輸出:

Array

(

[dirname] => /testweb

[basename] => test.txt

[extension] => txt

)

8、array_pop — 將數組最後一個單元彈出(出棧)就是將該元素從數組中去掉付給一個變量

9  ucwords(string)將字符串的首字符轉換成大寫

ucwords(‘abc df’); //Abc Df

ucfirst(‘abc df’); //Abc df

看出不同了嗎。

10 echo number_format(’1234567890.4545′,2,’.',’,'); //1,234,567,890.45


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章