替換函數(shù)主要有strtr(),str_repalce()這兩個函數(shù)。
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的景谷網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
首先針對strtr函數(shù)第一種方式:
我們看看下面的舉例:
?php
echo strtr("I Love you","Lo","lO");
?
得到的結(jié)果是:
I lOve yOu
這個結(jié)果提醒我們:
1.strtr它是區(qū)分大小寫的
2.strtr的替換是很特殊的,你注意看后面那個yOu,中間的O被替換的,這顯然不是我們的本意。
再舉一個特殊例子,說明這個php的sttr函數(shù)的怪異
?php
echo strtr("I Love you","Love","");
?
結(jié)果是:
I Love you
什么也不會改變,所以strtr需要注意的是:
3.不能被替換為空,也就是末位那個參數(shù)不能是空字符串,當(dāng)然空格是可以的。
再次舉例strtr函數(shù)的另一種情況:
?php
echo strtr("I Loves you","Love","lOvEA");
?
結(jié)果是:
I lOvEs yOu
注意看第三個參數(shù)的A,在結(jié)果中并沒有出現(xiàn)。
4.我不建議用strtr以少換多。
ok,既然這個strtr函數(shù)挺麻煩為什么還要用呢?
原因是,它的速度很快。據(jù)說,strtr 比 str_replace 快四倍。
5.能用strtr函數(shù)的時候一定要用。
第二種情況:
strtr(string,array)
6.strtr符合意愿的使用方法
?php
$table_change = array('you'='her sister');
echo strtr("I Love you",$table_change);
?
結(jié)果為:
I Love her sister
7.小技巧:你想到替換什么你就往數(shù)組加什么
比如:
?php
$table_change = array('you'='her sister');
$table_change += array('Love' = 'hate');
echo strtr("I Love you",$table_change);
?
結(jié)果是:
I hate her sister
再次提醒那個Love 寫成love 是行不通的哦。
字符串取代。
語法: string str_replace(string needle, string str, string haystack);
返回值: 字符串
函數(shù)種類: 資料處理
內(nèi)容說明
本函數(shù)將字符串 str 代入 haystack 字符串中,將所有的 needle 置換成 str。
下例將 %body% 以 black 取代
?php
$bodytag = str_replace("%body%", "black", "body text=%body%");
echo $bodytag;
?
格式:
[@str_replace("要替換的舊內(nèi)容", "要取代原內(nèi)容的新字符", $被替換內(nèi)容的變量名)]
[@str_replace(array('舊1','舊2','舊3'), array('新1','新2','新3'), $被替換內(nèi)容的變量名)]
[@str_replace(array('舊1','舊2','舊3'), '新內(nèi)容', $被替換內(nèi)容的變量名)]
實例:
多對一替換:想把內(nèi)容字段里所有的p/p標(biāo)簽清除掉,替換成空 [@str_replace(array('p','/p'), '', $Content)]
一對一替換:想把內(nèi)容字段里所有的br標(biāo)簽換成p [@str_replace('br', 'p', $Content)]
多對多替換:想把內(nèi)容字段里的br換成br /, 同時p換hr,把/p全清除 [@str_replace(array('br', 'p','/p'), array('br /','hr',''), $Content)]
char
file[20]="copy
C:\a.txt
c:\b.txt";
system(file);
這是最簡單的辦法。當(dāng)然你也可以寫打開源文件,再打開目標(biāo)文件,讀源文件內(nèi)容,寫目標(biāo)文件....
1、C語言中沒有提供字符串替換函數(shù),網(wǎng)上能找到的類似函數(shù)也只是能替換一個,不能替換全部,工作中卻常常要用到這個功能,故實現(xiàn)一個函數(shù)。該函數(shù)所使用到的相關(guān)函數(shù)均是自己實現(xiàn),沒有調(diào)用庫函數(shù)。
2、函數(shù)代碼如下:
/*descript:replace?str,返回一個替換以后的字符串,用完之后要free()
success:return?1
error:return?0
BUG:"select?*?from?tab?where?id=':a'?and?name?=':aa'",this?is?not?support,this?function?is?just?simple?str_replace?,not?support?all?SQL?language
*/
char?*replacestr(char?*strbuf,?char?*sstr,?char?*dstr)
{???????char?*p,*p1;
int?len;
if?((strbuf?==?NULL)||(sstr?==?NULL)||(dstr?==?NULL))
return?NULL;
p?=?strstr(strbuf,?sstr);???????//返回字符串第一次出現(xiàn)的地址,否則返回NULL
if?(p?==?NULL)??/*not?found*/
return?NULL;
len?=?strlen(strbuf)?+?strlen(dstr)?-?strlen(sstr);
p1?=?malloc(len);
bzero(p1,?len);
strncpy(p1,?strbuf,?p-strbuf);
strcat(p1,?dstr);
p?+=?strlen(sstr);
strcat(p1,?p);
return?p1;
}
調(diào)用函數(shù)。
1.malloc函數(shù):void* malloc(size_t size);
功能:開辟一塊大小為size單位為字節(jié)的動態(tài)空間。若開辟成功返回函數(shù)開辟空間的無類型指針,若開辟失敗則返回空指針NULL。
2.calloc函數(shù): void* calloc(size_t num, size_t size);
功能:開辟一塊能容納下num個元素,每個元素大小為size字節(jié)的動態(tài)空間,且將每個元素的值初始化為0。若開辟成功返回函數(shù)開辟空間的無類型指針,若開辟失敗則返回空指針NULL。
3.realloc函數(shù):void* realloc(void* ptr, size_t size);
功能:將指針ptr所指的動態(tài)內(nèi)存空間大小調(diào)整為size個字節(jié)。調(diào)整完成后返回原指針或新位置的指針又或是空指針。