自己總結了一些自己曾經使用的字元處理函式。共勉。。。
張存超php技術部落格
到目前為止我其實還是算是乙個php
新手,這是我系統學習的第乙個程式語言,其實所有的程式語言都是有共通之處的,就我的理解而言,所有的操作其實都是對字元的操作,我們通過判斷字元的有無或者字元的具體的值是多少,進而來確定執行什麼操作,而這所謂的操作其實也是對字元的操作,要麼讀取,要麼新增,要麼修改,要麼刪除。而程式的基本就是迴圈和分支。
所有的功能的操作都不會只有一種方法,都會有很多方法達到目的,但是當我們已經可以達到目的的時候就不能只單單的停留在功能的實現上,就應該考慮優化,就應該考慮如何更高效的完成任務達到目的。而這些函式對於我們這些苦命的phper
而言,就應了那一句話「文章本天成,妙手偶得之!」。
其實所有的功能的實現都是可行的,也就是說我們的需求,我們想要實現的功能都是可以實現和做到的,方法已經在那裡了,就等著我們去發現。要相信程式可以實現任何功能。只是有優劣之分罷了。下面就具體的說幾個常用而又好用的字元處理函式。
1、 str_ireplace函式
字元替換函式,其實正則函式也有替換函式,但是,能用函式直接實現的最好還是用php
自帶的函式。而如果字元比較複雜,再使用正則。正則其實也非常的簡單。
他雖然叫替換函式,但是,我們其實可以轉變一下思路,他完全可以用來將某些字元清空。
例str_ireplace(『<』,」,$content);就是將<
清空。這樣的應用很廣。我在我的部落格
2、 explode函式
explode(以什麼分割
,要分割的字元
);這是個使用頻率很高的函式,和他對應的就是implode()函式,implode
鏈結函式,implode (「以什麼連線
「,要連線的陣列
)=join
函式。這兩個函式結合使用可以取得很大的功效。很多時候,有的人在用「,」鏈結字串的時候,用迴圈。其實,那樣的話會在後面或前面多出乙個「,」,而用
implode
函式就不會。這樣可以應用於批量處理,比如乙個多選框。提交後是陣列的形式,我們要批量的刪除,可以用
implode
用「,」來鏈結,然後在
sql語句中使用
where in($arry)
來實現。
3、 strstr(a,b) 和strrchr(a,b)函式。
前乙個是獲取a在b
第一次出現位置後的所有字元,後乙個是獲取a在
b最後一次出現位置後的所有字元。後乙個有乙個非常好的妙用。那就是我們應該都有做過檔案上傳功能。在做這個功能的時候一定會遇到的就是獲得檔案的字尾,以前我們學習的時候是獲取檔名後,用前面的
explode
函式分割,然後取第二個引數。但是,這樣有個問題,就是如果檔案的名字為
這樣就會出錯誤了,當然我們可以獲得陣列的最後乙個引數,但是這樣也不好,太麻煩,而用strrchr(『.』,檔名)
這樣就可以獲得
.字尾名,我覺得還是比較方便的。
4、 htmlentities函式
這個函式可能有很多人並沒有使用過,但是這卻是個非常有用很強大的乙個函式。我們都知道php
有防止sql
注入的函式addslashes,其實他的作用也類似。我們都知道如果我們echo 『
』;我們是無法看到的,但是檢視下原始碼是能看到的,這就是因為輸出的是
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
php中一些知識
file 的路徑是當前 所在檔案 dirname dirname file 得到的是檔案上一層目錄名 dirname file 得到的是檔案所在層目錄名 require其實是乙個直譯器解釋的過程,比如當我們在乙個檔案中require另乙個檔案的時候,其實是先解釋另乙個檔案。php中的檔案a的過程中假...
android開發中一些好用的知識總結
1 如何實現兩行文字的顯示,用盡可能少的view?答 可以相似android string檔案中使用cdata,只需要建立乙個textview即可完成該效果。原理是讓textview顯示html的格式。引用具體的 textview.settext html.fromhtml getstring r....
PHP中一些可用的方法
陣列編碼轉換函式 return array in charset原字串編碼 out charset輸出字串編碼 arr傳入的陣列 function array iconv in charset,out charset,arr 二維陣列排序函式 arr輸入的二位陣列 keys需要排序的字段 mode是...