今天看了,一篇同樣來自csdn的blog,我自己多事,做了一點測試,在其中發現了一些問題,寫了下面這篇:
以下虛線部分來自arcow 的 blog:
有一堆類似以下變數$abc的字串,末尾都多出來了乙個,(逗號),我想去掉末尾的逗號,為了驗證不同的處理方法的執行時間,以下是我寫的乙個對比程式進行試驗:
程式一,利用substr
<?php
function getmicrotime()
$time_start = getmicrotime();
$abc="重慶,萬州,涪陵,渝中,大渡口,江北,沙坪壩,九龍坡,南岸,北碚,萬盛,雙撟,渝北,巴南,黔江,長壽,綦江,潼南,銅梁,大足,榮昌,壁山,梁平,城口,豐都,墊江,武隆,忠縣,開縣,雲陽,奉節,巫山,巫溪,石柱,";
$l=strlen($abc);
$abc=substr($abc,0,$l-1);
echo $abc."
";$time_end = getmicrotime();
echo ($time_end-$time_start)*1000;
?>
程式二,利用正規表示式
<?php
function getmicrotime()
$time_start = getmicrotime();
$abc="重慶,萬州,涪陵,渝中,大渡口,江北,沙坪壩,九龍坡,南岸,北碚,萬盛,雙撟,渝北,巴南,黔江,長壽,綦江,潼南,銅梁,大足,榮昌,壁山,梁平,城口,豐都,墊江,武隆,忠縣,開縣,雲陽,奉節,巫山,巫溪,石柱,";
$abc=str_replace(",$","",$abc);
echo $abc."
";$time_end = getmicrotime();
echo ($time_end-$time_start)*1000;
?>
結果程式一的執行平均時間為0.045,程式二的執行平均時間為0.085。不進行任何處理的平均執行時間為0.041
可見利用第一種方法處理效率要高出盡50%
由此,我們在做程式的過程中,尤其是在要求高效的程式中,我們應該對不同的方法進行一下對比,找出最優化的處理方法。
在這個例子中:
關鍵之處在於例一中的:
/*$l=strlen($abc);
$abc=substr($abc,0,$l-1);*/
和例二中的:
/*$abc=str_replace(",$","",$abc);*/
這個地方顯然存在可以再改進的地方:
substr()方法中,第三個引數如果用負數的話,php會自動從string的最後開始記數,據此,可以修改此方法如下:
$abc=substr($abc,0,-1);
即可。故整個程式改為:
程式三,改進的substr
<?php
function getmicrotime()
$time_start = getmicrotime();
$abc="重慶,萬州,涪陵,渝中,大渡口,江北,沙坪壩,九龍坡,南岸,北碚,萬盛,雙撟,渝北,巴南,黔江,長壽,綦江,潼南,銅梁,大足,榮昌,壁山,梁平,城口,豐都,墊江,武隆,忠縣,開縣,雲陽,奉節,巫山,巫溪,石柱,";
$abc=substr($abc,0,-1);
echo $abc."
";$time_end = getmicrotime();
echo ($time_end-$time_start)*1000;
?>
另外:在我實際的測試中發現:
結果程式一的執行平均時間為0.049,程式二的執行平均時間為0.017,
程式三的執行平均時間為0.012
。 執行
處理效率
,不言自明!
再羅嗦一點:
不知原作者的平均時間和」可見利用第一種方法處理效率
要高出盡50%
「的結論
是怎麼得到的?
在此,只想提交我個人的一點測試結論,僅供參考,無其他!!!
php對字串的多種處理
1.字串拼接 str1 hello str2 world 連線上面兩個字串 中間用空格分隔,也可以用,等 str3 str1 str2 2.字串分割 以特殊符號分割 str hello,xiaoming,how are you point explode str,3 引數3表示分割成的陣列中的元素個...
php 中字串處理函式
1 查詢字元位置函式 strpos str,search,int 查詢search在 str中的第一次位置從int開始 stripos str,search,int 函式返回字串在另乙個字串中第一次出現的位置。該函式對大小寫不敏感 strrpos str,search,int 查詢search在 s...
php 字串處理
一 字串格式化 1.trim 可以出去字串開始位置和結束位置的空格,並返回結果字串 ltrim 除去左邊空格 rtrim 除去右邊空格 2.nl2br 用代替字串中的換行符 3.printf 將乙個格式化的字串輸出到瀏覽器中 sprintf 返回乙個格式化的字串 例 printf total amo...