⑴ 享學課堂盤點python字元串是什麼及簡單操作方法
python 字元串str是在Python編寫程序過程中,最常見的一種基本數據類型。字元串是許多單個子串組成的序列,其主要是用來表示文本。字元串是不可變數據類型,也就是說你要改變原字元串內的元素,只能是新建另一個字元串。雖然這樣,但python中的字元串還是有許多很實用的操作方法。
Python 字元串操作方法大全
1、去空格及特殊符號
復制代碼代碼如下:
s.strip().lstrip().rstrip(',')
2、復制字元串
復制代碼代碼如下:
#strcpy(sStr1,sStr2)
sStr1 = 'strcpy'
sStr2 = sStr1
sStr1 = 'strcpy2'
print sStr2
3、連接字元串
復制代碼代碼如下:
#strcat(sStr1,sStr2)
sStr1 = 'strcat'
sStr2 = 'append'
sStr1 += sStr2
print sStr1
4、查找字元
復制代碼代碼如下:
#strchr(sStr1,sStr2)
# < 0 為未找到
sStr1 = 'strchr'
sStr2 = 's'
nPos = sStr1.index(sStr2)
print nPos
5、比較字元串
復制代碼代碼如下:
#strcmp(sStr1,sStr2)
sStr1 = 'strchr'
sStr2 = 'strch'
print cmp(sStr1,sStr2)
6、掃描字元串是否包含指定的字元
復制代碼代碼如下:
#strspn(sStr1,sStr2)
sStr1 = '12345678'
sStr2 = '456'
#sStr1 and chars both in sStr1 and sStr2
print len(sStr1 and sStr2)
7、字元串長度
復制代碼代碼如下:
#strlen(sStr1)
sStr1 = 'strlen'
print len(sStr1)
8、將字元串中的大小寫轉換
復制代碼代碼如下:
S.lower() #小寫
S.upper() #大寫
S.swapcase() #大小寫互換
S.capitalize() #首字母大寫
String.capwords(S) #這是模塊中的方法。它把S用split()函數分開,然後用capitalize()把首字母變成大寫,最後用join()合並到一起
#實例:
#strlwr(sStr1)
sStr1 = 'JCstrlwr'
sStr1 = sStr1.upper()
#sStr1 = sStr1.lower()
print sStr1
9、追加指定長度的字元串
復制代碼代碼如下:
#strncat(sStr1,sStr2,n)
sStr1 = '12345'
sStr2 = 'abcdef'
n = 3
sStr1 += sStr2[0:n]
print sStr1
10、字元串指定長度比較
復制代碼代碼如下:
#strncmp(sStr1,sStr2,n)
sStr1 = '12345'
sStr2 = '123bc'
n = 3
print cmp(sStr1[0:n],sStr2[0:n])
11、復制指定長度的字元
復制代碼代碼如下:
#strncpy(sStr1,sStr2,n)
sStr1 = ''
sStr2 = '12345'
n = 3
sStr1 = sStr2[0:n]
print sStr1
12、將字元串前n個字元替換為指定的字元
復制代碼代碼如下:
#strnset(sStr1,ch,n)
sStr1 = '12345'
ch = 'r'
n = 3
sStr1 = n * ch + sStr1[3:]
print sStr1
13、掃描字元串
復制代碼代碼如下:
#strpbrk(sStr1,sStr2)
sStr1 = 'cekjgdklab'
sStr2 = 'gka'
nPos = -1
for c in sStr1:
if c in sStr2:
nPos = sStr1.index(c)
break
print nPos
14、翻轉字元串
復制代碼代碼如下:
#strrev(sStr1)
sStr1 = 'abcdefg'
sStr1 = sStr1[::-1]
print sStr1
15、查找字元串
復制代碼代碼如下:
#strstr(sStr1,sStr2)
sStr1 = 'abcdefg'
sStr2 = 'cde'
print sStr1.find(sStr2)
16、分割字元串
復制代碼代碼如下:
#strtok(sStr1,sStr2)
sStr1 = 'ab,cde,fgh,ijk'
sStr2 = ','
sStr1 = sStr1[sStr1.find(sStr2) + 1:]
print sStr1
#或者
s = 'ab,cde,fgh,ijk'
print(s.split(','))
17、連接字元串
復制代碼代碼如下:
delimiter = ','
mylist = ['Brazil', 'Russia', 'India', 'China']
print delimiter.join(mylist)
18、php 中 addslashes 的實現
復制代碼代碼如下:
def addslashes(s):
d = {'"':'\\"', "'":"\\'", "\0":"\\\0", "\\":"\\\\"}
return ''.join(d.get(c, c) for c in s)
s = "John 'Johny' Doe (a.k.a. \"Super Joe\")\\\0"
print s
print addslashes(s)
19、只顯示字母與數字
復制代碼代碼如下:
def OnlyCharNum(s,oth=''):
s2 = s.lower();
fomart = ''
for c in s2:
if not c in fomart:
s = s.replace(c,'');
return s;
print(OnlyStr("a000 aa-b"))
20、截取字元串
復制代碼代碼如下:
str = '0123456789′
print str[0:3] #截取第一位到第三位的字元
print str[:] #截取字元串的全部字元
print str[6:] #截取第七個字元到結尾
print str[:-3] #截取從頭開始到倒數第三個字元之前
print str[2] #截取第三個字元
print str[-1] #截取倒數第一個字元
print str[::-1] #創造一個與原字元串順序相反的字元串
print str[-3:-1] #截取倒數第三位與倒數第一位之前的字元
print str[-3:] #截取倒數第三位到結尾
print str[:-5:-3] #逆序截取,具體啥意思沒搞明白?
21、字元串在輸出時的對齊
復制代碼代碼如下:
S.ljust(width,[fillchar])
#輸出width個字元,S左對齊,不足部分用fillchar填充,默認的為空格。
S.rjust(width,[fillchar]) #右對齊
S.center(width, [fillchar]) #中間對齊
S.zfill(width) #把S變成width長,並在右對齊,不足部分用0補足
22、字元串中的搜索和替換
復制代碼代碼如下:
S.find(substr, [start, [end]])
#返回S中出現substr的第一個字母的標號,如果S中沒有substr則返回-1。start和end作用就相當於在S[start:end]中搜索
S.index(substr, [start, [end]])
#與find()相同,只是在S中沒有substr時,會返回一個運行時錯誤
S.rfind(substr, [start, [end]])
#返回S中最後出現的substr的第一個字母的標號,如果S中沒有substr則返回-1,也就是說從右邊算起的第一次出現的substr的首字母標號
S.rindex(substr, [start, [end]])
S.count(substr, [start, [end]]) #計算substr在S中出現的次數
S.replace(oldstr, newstr, [count])
#把S中的oldstar替換為newstr,count為替換次數。這是替換的通用形式,還有一些函數進行特殊字元的替換
S.strip([chars])
#把S中前後chars中有的字元全部去掉,可以理解為把S前後chars替換為None
S.lstrip([chars])
S.rstrip([chars])
S.expandtabs([tabsize])
#把S中的tab字元替換沒空格,每個tab替換為tabsize個空格,默認是8個
23、字元串的分割和組合
復制代碼代碼如下:
S.split([sep, [maxsplit]])
#以sep為分隔符,把S分成一個list。maxsplit表示分割的次數。默認的分割符為空白字元
S.rsplit([sep, [maxsplit]])
S.splitlines([keepends])
#把S按照行分割符分為一個list,keepends是一個bool值,如果為真每行後而會保留行分割符。
S.join(seq) #把seq代表的序列──字元串序列,用S連接起來
24、字元串的mapping,這一功能包含兩個函數
復制代碼代碼如下:
String.maketrans(from, to)
#返回一個256個字元組成的翻譯表,其中from中的字元被一一對應地轉換成to,所以from和to必須是等長的。
S.translate(table[,deletechars])
# 使用上面的函數產後的翻譯表,把S進行翻譯,並把deletechars中有的字元刪掉。需要注意的是,如果S為unicode字元串,那麼就不支持 deletechars參數,可以使用把某個字元翻譯為None的方式實現相同的功能。此外還可以使用codecs模塊的功能來創建更加功能強大的翻譯表。
25、字元串還有一對編碼和解碼的函數
復制代碼代碼如下:
S.encode([encoding,[errors]])
# 其中encoding可以有多種值,比如gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默認值為"strict",意思是UnicodeError。可能的值還有'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 和所有的通過codecs.register_error注冊的值。這一部分內容涉及codecs模塊,不是特明白
S.decode([encoding,[errors]])
26、字元串的測試、判斷函數,這一類函數在string模塊中沒有,這些函數返回的都是bool值
復制代碼代碼如下:
S.startswith(prefix[,start[,end]])
#是否以prefix開頭
S.endswith(suffix[,start[,end]])
#以suffix結尾
S.isalnum()
#是否全是字母和數字,並至少有一個字元
S.isalpha() #是否全是字母,並至少有一個字元
S.isdigit() #是否全是數字,並至少有一個字元
S.isspace() #是否全是空白字元,並至少有一個字元
S.islower() #S中的字母是否全是小寫
S.isupper() #S中的字母是否便是大寫
S.istitle() #S是否是首字母大寫的
27、字元串類型轉換函數,這幾個函數只在string模塊中有
復制代碼代碼如下:
string.atoi(s[,base])
#base默認為10,如果為0,那麼s就可以是012或0x23這種形式的字元串,如果是16那麼s就只能是0x23或0X12這種形式的字元串
string.atol(s[,base]) #轉成long
string.atof(s[,base]) #轉成float
這里再強調一次,字元串對象是不可改變的,也就是說在python創建一個字元串後,你不能把這個字元中的某一部分改變。任何上面的函數改變了字元串後,都會返回一個新的字元串,原字串並沒有變。其實這也是有變通的辦法的,可以用S=list(S)這個函數把S變為由單個字元為成員的list,這樣的話就可以使用S[3]='a'的方式改變值,然後再使用S=" ".join(S)還原成字元串
⑵ (100分)[php]寫幾個你熟悉的字元串處理函數!
推薦你查看官方PHP手冊,以下是摘取相關的資料:
addcslashes — 以 C 語言風格使用反斜線轉義字元串中的字元
addslashes — 使用反斜線引用字元串
bin2hex — 將二進制數據轉換成十六進製表示
chop — rtrim 的別名
chr — 返回指定的字元
chunk_split — 將字元串分割成小塊
convert_cyr_string — 將字元由一種 Cyrillic 字元轉換成另一種
convert_uudecode — 解碼一個 uuencode 編碼的字元串
convert_uuencode — 使用 uuencode 編碼一個字元串
count_chars — 返回字元串所用字元的信息
crc32 — 計算一個字元串的 crc32 多項式
crypt — 單向字元串散列
echo — 輸出一個或多個字元串
explode — 使用一個字元串分割另一個字元串
fprintf — 將格式化後的字元洞嘩串寫入到流
get_html_translation_table — 返回使用 htmlspecialchars 和 htmlentities 後的轉換表
hebrev — 將邏輯順序希伯來文(logical-Hebrew)轉換為視覺順序希伯來文(visual-Hebrew)
hebrevc — 將邏輯順序希伯來文(logical-Hebrew)轉換為視覺順序希伯來文(visual-Hebrew),並且轉換換行符
hex2bin — Decodes a hexadecimally encoded binary string
html_entity_decode — Convert all HTML entities to their applicable characters
htmlentities — Convert all applicable characters to HTML entities
htmlspecialchars_decode — Convert special HTML entities back to characters
htmlspecialchars — Convert special characters to HTML entities
implode — Join array elements with a string
join — 別名 implode
lcfirst — Make a string's first character lowercase
levenshtein — Calculate Levenshtein distance between two strings
localeconv — Get numeric formatting information
ltrim — Strip whitespace (or other characters) from the beginning of a string
md5_file — 計算指定文件的 MD5 散列值
md5 — 計算字元串的 MD5 散列值
metaphone — Calculate the metaphone key of a string
money_format — Formats a number as a currency string
nl_langinfo — Query language and locale information
nl2br — 在字元串鎮鄭所有新行之前插入 HTML 換行標御顫頌記
number_format — Format a number with grouped thousands
ord — 返回字元的 ASCII 碼值
parse_str — 將字元串解析成多個變數
print — 輸出字元串
printf — 輸出格式化字元串
quoted_printable_decode — Convert a quoted-printable string to an 8 bit string
quoted_printable_encode — Convert a 8 bit string to a quoted-printable string
quotemeta — Quote meta characters
rtrim — 刪除字元串末端的空白字元(或者其他字元)
setlocale — Set locale information
sha1_file — 計算文件的 sha1 散列值
sha1 — 計算字元串的 sha1 散列值
similar_text — 計算兩個字元串的相似度
soundex — Calculate the soundex key of a string
sprintf — Return a formatted string
sscanf — Parses input from a string according to a format
str_getcsv — 解析 CSV 字元串為一個數組
str_ireplace — str_replace 的忽略大小寫版本
str_pad — 使用另一個字元串填充字元串為指定長度
str_repeat — 重復一個字元串
str_replace — 子字元串替換
str_rot13 — 對字元串執行 ROT13 轉換
str_shuffle — 隨機打亂一個字元串
str_split — 將字元串轉換為數組
str_word_count — 返回字元串中單詞的使用情況
strcasecmp — 二進制安全比較字元串(不區分大小寫)
strchr — 別名 strstr
strcmp — 二進制安全字元串比較
strcoll — 基於區域設置的字元串比較
strcspn — 獲取不匹配遮罩的起始子字元串的長度
strip_tags — 從字元串中去除 HTML 和 PHP 標記
stripcslashes — 反引用一個使用 addcslashes 轉義的字元串
stripos — 查找字元串首次出現的位置(不區分大小寫)
stripslashes — 反引用一個引用字元串
stristr — strstr 函數的忽略大小寫版本
strlen — 獲取字元串長度
strnatcasecmp — 使用「自然順序」演算法比較字元串(不區分大小寫)
strnatcmp — 使用自然排序演算法比較字元串
strncasecmp — 二進制安全比較字元串開頭的若干個字元(不區分大小寫)
strncmp — 二進制安全比較字元串開頭的若干個字元
strpbrk — 在字元串中查找一組字元的任何一個字元
strpos — 查找字元串首次出現的位置
strrchr — 查找指定字元在字元串中的最後一次出現
strrev — 反轉字元串
strripos — 計算指定字元串在目標字元串中最後一次出現的位置(不區分大小寫)
strrpos — 計算指定字元串在目標字元串中最後一次出現的位置
strspn — 計算字元串中全部字元都存在於指定字元集合中的第一段子串的長度。
strstr — 查找字元串的首次出現
strtok — 標記分割字元串
strtolower — 將字元串轉化為小寫
strtoupper — 將字元串轉化為大寫
strtr — 轉換指定字元
substr_compare — 二進制安全比較字元串(從偏移位置比較指定長度)
substr_count — 計算字串出現的次數
substr_replace — 替換字元串的子串
substr — 返回字元串的子串
trim — 去除字元串首尾處的空白字元(或者其他字元)
ucfirst — 將字元串的首字母轉換為大寫
ucwords — 將字元串中每個單詞的首字母轉換為大寫
vfprintf — 將格式化字元串寫入流
vprintf — 輸出格式化字元串
vsprintf — 返回格式化字元串
wordwrap — 打斷字元串為指定數量的字串
====================
這其中我熟悉的有:
echo — 輸出一個或多個字元串
explode — 使用一個字元串分割另一個字元串
addslashes — 使用反斜線引用字元串
bin2hex — 將二進制數據轉換成十六進製表示
html_entity_decode — Convert all HTML entities to their applicable characters
htmlentities — Convert all applicable characters to HTML entities
htmlspecialchars_decode — Convert special HTML entities back to characters
htmlspecialchars — Convert special characters to HTML entities
implode — Join array elements with a string
..........
大部分都用過
⑶ 如何在php中不使用系統函數來實現分割字元串
1查找字元位置函數: strpos($str,search,[int]):查找search在$str中的第一次位置從int開始; stripos($str,search,[int]):函數返回字元串在另一個字元串中第一次出現的位置。該函數對大小寫不敏感 strrpos($str,search,[int]):查找search在$str中的最後一次出現的位置從int 2、提取子字元函數(雙位元組) submit($str,int start[,int length]):從$str中strat位置開始提取[length長度的字元串]。 strstr($str1,$str2):從$str1(第一個的位置)搜索$str2並從它開始截取到結束字元串;若沒有則返回FALSE。 stristr() 功能同strstr,只是不區分大小寫。 strrchr() 從最後一次搜索到的字元處返回;用處:取路徑中文件名 3、替換字元串 str_replace(search,replace,$str):從$str中查找search用replace來替換 str_irreplace(search,replace,$str): strtr($str,search,replace):這個函數中replace不能為""; substr_replace($Str,$rep,$start[,length])$str原始字元串,$rep替換後的新 字元串,$start起始位置,$length替換的長度,該項可選 4、字元長度 int strlen($str) 5、比較字元函數 int strcmp($str1,$str2):$str1>=<$str2分別為正1,0,-1(字元串比較) strcasecmp() 同上(不分大小寫) strnatcmp("4","14") 按自然排序比較字元串 strnatcasecmp() 同上,(區分大小寫) 6、分割成數組函數 str_split($str,len):把$str按len長度進行分割返回數組 split(search,$str[,int]):把$str按search字元進行分割返回數組int是分割幾次,後面的將不分割 expload(search,$str[,int]) 7、去除空格:ltrim、rtrim、trim 8、加空格函數 chunk_split($str,2);向$str字元裡面按2個字元就加入一個空格; 9、chr、ord--返回指定的字元或ascii 10、HTML代碼有關函數 nl2br():使\n轉換為<br>。 strip_tags($str[,'<p>']):去除HTML和PHP標記 在$str中所有HTML和PHP代碼將被去除,可選參數為html和PHP代碼作用是將保留 可選參數所寫的代碼。 如:echo strip_tags($text, '<br><p>'); htmlspecialchars($str[,參數]):頁面正常輸出HTML代碼參數是轉換方式 11、字元大小寫轉換函數 strtolower($str) 字元串轉換為小寫 strtoupper($str) 字元串轉換為大寫 ucfirst($str) 將函數的第一個字元轉換為大寫 ucwords($str) 將每個單詞的首字母轉換為大寫 12、資料庫相關函數 addslashes($str):使str內單引號(')、雙引號(")、反斜線(\)與 NUL 字元串轉換為\',\",\\。 magic_quotes_gpc = On 自動對 get post cookie的內容進行轉義 get_magic_quotes_gpc()檢測是否打開magic_quotes_gpc stripslashes() 去除字元串中的反斜杠 13、連接函數 implode(str,$arr) 將字元串數組按指定字元連接成一個字元串;implode()函數有個別名函數join addcslashes —— 為字元串裡面的部分字元添加反斜線轉義字元 addslashes —— 用指定的方式對字元串裡面的字元進行轉義 bin2hex —— 將二進制數據轉換成十六進製表示 chr —— 返回一個字元的ASCII碼 chunk_split —— 按一定的字元長度將字元串分割成小塊 convert_cyr_string —— 將斯拉夫語字元轉換為別的字元 convert_uudecode —— 解密一個字元串 convert_uuencode —— 加密一個字元串 count_chars —— 返回一個字元串裡面的字元使用信息 crc32 —— 計算一個字元串的crc32多項式 crypt —— 單向散列加密函數 explode —— 將一個字元串用分割符轉變為一數組形式 fprintf —— 按照要求對數據進行返回,並直接寫入文檔流 get_html_translation_table —— 返回可以轉換的HTML實體 html_entity_decode —— htmlentities ()函數的反函數,將HTML實體轉換為字元 htmlentities —— 將字元串中一些字元轉換為HTML實體 htmlspecialchars_decode —— htmlspecialchars()函數的反函數,將HTML實體轉換為字元 htmlspecialchars —— 將字元串中一些字元轉換為HTML實體 implode —— 將數組用特定的分割符轉變為字元串 join —— 將數組轉變為字元串,implode()函數的別名 levenshtein —— 計算兩個詞的差別大小 localeconv —— 獲取數字相關的格式定義 ltrim —— 去除字元串左側的空白或者指定的字元 md5_file —— 將一個文件進行MD5演算法加密 md5 —— 將一個字元串進行MD5演算法加密 metaphone —— 判斷一個字元串的發音規則 money_format —— 按照參數對數字進行格式化的輸出 nl_langinfo —— 查詢語言和本地信息 nl2br —— 將字元串中的換行符「\n」替換成「<br />」 number_format —— 按照參數對數字進行格式化的輸出 ord —— 將一個ASCII碼轉換為一個字元 parse_str —— 把一定格式的字元串轉變為變數和值 print —— 用以輸出一個單獨的值 printf —— 按照要求對數據進行顯示 quoted_printable_decode —— 將一個字元串加密為一個8位的二進制字元串 quotemeta —— 對若干個特定字元進行轉義 rtrim —— 去除字元串右側的空白或者指定的字元 setlocale —— 設置關於數字,日期等等的本地格式 sha1_file —— 將一個文件進行SHA1演算法加密 sha1 —— 將一個字元串進行SHA1演算法加密 similar_text —— 比較兩個字元串,返回系統認為的相似字元個數 soundex —— 判斷一個字元串的發音規則 sprintf —— 按照要求對數據進行返回,但是不輸出 sscanf —— 可以對字元串進行格式化 str_ireplace —— 像str_replace()函數一樣匹配和替換字元串,但是不區分大小寫 str_pad —— 對字元串進行兩側的補白 str_repeat —— 對字元串進行重復組合 str_replace —— 匹配和替換字元串 str_rot13 —— 將字元串進行ROT13加密處理 str_shuffle —— 對一個字元串裡面的字元進行隨機排序 str_split —— 將一個字元串按照字元間距分割為一個數組 str_word_count —— 獲取字元串裡面的英文單詞信息 strcasecmp —— 對字元串進行大小比較,不區分大小寫 strchr —— 通過比較返回一個字元串的部分strstr()函數的別名 strcmp —— 對字元串進行大小比較 strcoll – 根據本地設置對字元串進行大小比較 strcspn —— 返回字元連續非匹配長度的值 strip_tags —— 去除一個字元串裡面的HTML和PHP代碼 stripcslashes —— 反轉義addcslashes()函數轉義處理過的字元串 stripos —— 查找並返回首個匹配項的位置,匹配不區分大小寫 stripslashes —— 反轉義addslashes()函數轉義處理過的字元串 stristr —— 通過比較返回一個字元串的部分,比較時不區分大小寫 strlen —— 獲取一個字元串的編碼長度 strnatcasecmp —— 使用自然排序法對字元串進行大小比較,不區分大小寫 strnatcmp —— 使用自然排序法對字元串進行大小比較 strncasecmp —— 對字元串的前N個字元進行大小比較,不區分大小寫 strncmp —— 對字元串的前N個字元進行大小比較 strpbrk —— 通過比較返回一個字元串的部分 strpos —— 查找並返回首個匹配項的位置 strrchr —— 通過從後往前比較返回一個字元串的部分 strrev —— 將字元串裡面的所有字母反向排列 strripos —— 從後往前查找並返回首個匹配項的位置,匹配不區分大小寫 strrpos —— 從後往前查找並返回首個匹配項的位置 strspn —— 匹配並返回字元連續出現長度的值 strstr —— 通過比較返回一個字元串的部分 strtok —— 用指定的若干個字元來分割字元串 strtolower —— 將字元串轉變為小寫 strtoupper —— 將字元串轉變為大寫 strtr —— 對字元串比較替換 substr_compare —— 對字元串進行截取後的比較 substr_count —— 計算字元串中某字元段的出現次數 substr_replace —— 對字元串中的部分字元進行替換 substr —— 對字元串進行截取 trim —— 去除字元串兩邊的空白或者指定的字元 ucfirst —— 將所給字元串的第一個字母轉換為大寫 ucwords —— 將所給字元串的每一個英文單詞的第一個字母變成大寫 vfprintf —— 按照要求對數據進行返回,並直接寫入文檔流 vprintf —— 按照要求對數據進行顯示 vsprintf —— 按照要求對數據進行返回,但是不輸出 wordwrap —— 按照一定的字元長度分割字元串 1,快速創建數組的函數range() 比如range()函數可以快速創建從1到9的數字數組: <?php $numbers=range(1,9); //用range直接創建1~9共9個數字組成的數組,以「1」開始「9」結束。 echo $numbers[1]; //輸出創建的第二個數組值:2; echo $numbers[0];則輸入第一個值:0。 ?> 當然,使用range(9,1)則創建了9到1的數字數組。同時,range()還可以創建從a到z 的字元數組: <?php $numbers=range(a,z); foreach ($numbers as $mychrs) //遍歷$numbers數組,每次循環當前單元值被賦給$mychrs echo $mychrs." "; //output a b c d e f g h i j k l m n o p q r s t u v w x y z ?> //foreach是一種遍歷數組的簡便方法,foreach 僅能用於數組,當試圖將其用於其它數據類型或者一個未初始化的變數時會產生錯誤,它有兩種格式: foreach (array_expression as $value) statementforeach (array_expression as $key => $value) statement 第一種格式遍歷給定的 array_expression 數組。每次循環中,當前單元的值被賦給 $value 並且數組內部的指針向前移一步(因此下一次循環中將會得到下一個單元)。第二種格式做同樣的事,只除了當前單元的鍵名也會在每次循環中被賦給變數 $key 使用字元數組時注意大小寫,比如range(A,z)和range(a,Z)是不一樣的。 range()函數還具有第三個參數,該參數的作用是設定步長,比如range(1,9,3)創建的數組元素是:1、4、7 2,PHP中常規數組的排序 一般數組中的各元素均以字元或數字表現的,所以可對數組元素進行升序排列,該功能函數為sort()。比如: <?php $people=array('name','sex','nation','birth'); foreach ($people as $mychrs) echo $mychrs." "; sort($people); echo "<br />---排序後---<br />"; foreach ($people as $mychrs) echo $mychrs." "; ?> 升序排序後的數組元素顯示為 birth name nation sex,當然,sort()函數是區分字母大小寫的(字母從大到小的順序是:A…Z…a…z) Sort()函數還具有第二參數,用來說明升序的規則是用來比較數字還是字元串的。比如: <?php echo "---按數字升序排序---<br />"; $num2=array('26','3',); sort($num2,SORT_NUMERIC); foreach ($num2 as $mychrs) echo $mychrs." "; echo "<br />---按字元升序排序---<br />"; $num3=array('26','3'); sort($num3,SORT_STRING); foreach ($num3 as $mychrs) echo $mychrs." "; ?> SORT_NUMERIC和SORT_STRING用來聲明按數字或字元的升序排列。如果按照數字升序排列是:3,26;但如果按照字元升序排列則是:26,3了。 PHP中除了升序函數以外,還有降序或稱反向排列的函數,就是rsort()函數,比如: $num1=range(1,9); rsort($num1); //這里其實就相當於range(9,1) 3,PHP中關聯數組的排序 PHP除了支持數字索引數組以外,還支持相關數組。比如如下數組就是一個相關(關聯)數組: $peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth'); 使用sort($peoples)默認即是按照元素定義值的升序排序,在關聯數組中可使用asort()函數表示按元素值升序排序,關聯數組中最主要的則是可按照關鍵字(如xm、xb、mz等)的升序排序,該方法是用函數ksort()函數。 <?php $peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth'); foreach ($peoples as $mychrs) echo $mychrs." "; echo "<br />--按元素值升序排列--<br />"; asort($peoples); foreach ($peoples as $mychrs) echo $mychrs." "; echo "<br />--按關鍵字升序排列--<br />"; ksort($peoples); foreach ($peoples as $mychrs) echo $mychrs." "; ?> 和常規數組擁有sort()升序函數的反向排序rsort()降序函數相對應的,關聯數組也有對應的降序函數:asort()函數和arsort()函數、ksort()函數和krsort()函數。 記憶:原型函數是sort(),其中a、k表示關聯數組相關必須前置,反向排序使用r修飾。 4,PHP數組元素隨機排序 PHP中使用shuffle()函數將數組元素進行隨機的重新排序,每次都會顯示不同的排序組合,比如: <?php $fer=array('cnbruce','cnrose','cnjames','cnanne'); shuffle($fer); //隨即排序,每刷新一次頁面則進行一次隨機排序。 foreach ($fer as $mychrs) echo $mychrs." "; ?> 5,PHP數組按原順序反向排序 PHP中可使用array_reverse()函數將數組元素按原順序反向排序。比如: <?php $fer=array('cnbruce','cnrose','cnjames','cnanne'); foreach ($fer as $mychrs) echo $mychrs." "; $fer=array_reverse($fer); //將數組內元素按原順序反向排序 echo "<br />--按原順序反向--<br />"; foreach ($fer as $mychrs) echo $mychrs." "; ?> output: cnbruce cnrose cnjames cnanne --按原順序反向-- cnanne cnjames cnrose cnbruce 注意這里的 $fer=array_reverse($fer); 在此之前的任何排序函數均只是聲明引用,並沒有對原有數組進行重新定義,但當我調試該函數時則需要重新定義。這是因為array_reverse()是返 回原數組修改後的副本,如果不需要原有數組,可對原數組重新定義達到覆蓋的目的,否則就另外定義數組保存副本,比 如:$fer_bak=array_reverse($fer_bak);
⑷ php判斷變數是否包含另一個字元
用函數strpbrk(string,charlist)
作用:在字元串中搜索指定字元中的任意一個。
參數:
string 必需。規定要搜索的字元串。差叢
charlist 必需。規定殲察要查虛改櫻找的字元。
⑸ 求字元串處理函數(全)
函數名: stpcpy
功 能: 拷貝一個字元串到另一個
用 法: char *stpcpy(char *destin, char *source);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
stpcpy(string, str1);
printf("%sn", string);
return 0;
}
函數名: strcat
功 能: 字元串拼接函數
用 法: char *strcat(char *destin, char *source);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char destination[25];
char *blank = " ", *c = "C++", *Borland = "Borland";
strcpy(destination, Borland);
strcat(destination, blank);
strcat(destination, c);
printf("%sn", destination);
return 0;
}
函數名: strchr
功 能: 在一個串中查找給定字元的第一個匹配之處
用 法: char *strchr(char *str, char c);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char string[15];
char *ptr, c = 'r';
strcpy(string, "This is a string");
ptr = strchr(string, c);
if (ptr)
printf("The character %c is at position: %dn", c, ptr-string);
else
printf("The character was not foundn");
return 0;
}
函數名: strcmp
功 能: 串比較
用 法: int strcmp(char *str1, char *str2);
看Asic碼,str1>str2,櫻頌返回值 > 0;兩串相等,返回0
程序兆攔例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
int ptr;
ptr = strcmp(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
else
printf("buffer 2 is less than buffer 1n");
ptr = strcmp(buf2, buf3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 3n");
else
printf("buffer 2 is less than buffer 3n");
return 0;
}
函數名: strncmpi
功 能: 將一個串中的一族頌胡部分與另一個串比較, 不管大小寫
用 法: int strncmpi(char *str1, char *str2, unsigned maxlen);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = strcmpi(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1n");
if (ptr == 0)
printf("buffer 2 equals buffer 1n");
return 0;
}
函數名: strcpy
功 能: 串拷貝
用 法: char *strcpy(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
strcpy(string, str1);
printf("%sn", string);
return 0;
}
函數名: strcspn
功 能: 在串中查找第一個給定字元集內容的段
用 法: int strcspn(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main(void)
{
char *string1 = "1234567890";
char *string2 = "747DC8";
int length;
length = strcspn(string1, string2);
printf("Character where strings intersect is at position %dn", length);
return 0;
}
函數名: strp
功 能: 將串拷貝到新建的位置處
用 法: char *strp(char *str);
程序例:
#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main(void)
{
char *p_str, *string = "abcde";
p_str = strp(string);
printf("%sn", p_str);
free(p_str);
return 0;
}
函數名: stricmp
功 能: 以大小寫不敏感方式比較兩個串
用 法: int stricmp(char *str1, char *str2);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = stricmp(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1n");
if (ptr == 0)
printf("buffer 2 equals buffer 1n");
return 0;
}
函數名: strerror
功 能: 返回指向錯誤信息字元串的指針
用 法: char *strerror(int errnum);
程序例:
#include <stdio.h>
#include <errno.h>
int main(void)
{
char *buffer;
buffer = strerror(errno);
printf("Error: %sn", buffer);
return 0;
}
函數名: strcmpi
功 能: 將一個串與另一個比較, 不管大小寫
用 法: int strcmpi(char *str1, char *str2);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = strcmpi(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1n");
if (ptr == 0)
printf("buffer 2 equals buffer 1n");
return 0;
}
函數名: strncmp
功 能: 串比較
用 法: int strncmp(char *str1, char *str2, int maxlen);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";
int ptr;
ptr = strncmp(buf2,buf1,3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
else
printf("buffer 2 is less than buffer 1n");
ptr = strncmp(buf2,buf3,3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 3n");
else
printf("buffer 2 is less than buffer 3n");
return(0);
}
函數名: strncmpi
功 能: 把串中的一部分與另一串中的一部分比較, 不管大小寫
用 法: int strncmpi(char *str1, char *str2);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBBccc", *buf2 = "bbbccc";
int ptr;
ptr = strncmpi(buf2,buf1,3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1n");
if (ptr == 0)
printf("buffer 2 equals buffer 1n");
return 0;
}
函數名: strncpy
功 能: 串拷貝
用 法: char *strncpy(char *destin, char *source, int maxlen);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
strncpy(string, str1, 3);
string[3] = '';
printf("%sn", string);
return 0;
}
函數名: strnicmp
功 能: 不注重大小寫地比較兩個串
用 法: int strnicmp(char *str1, char *str2, unsigned maxlen);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBBccc", *buf2 = "bbbccc";
int ptr;
ptr = strnicmp(buf2, buf1, 3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1n");
if (ptr == 0)
printf("buffer 2 equals buffer 1n");
return 0;
}
函數名: strnset
功 能: 將一個串中的所有字元都設為指定字元
用 法: char *strnset(char *str, char ch, unsigned n);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz";
char letter = 'x';
printf("string before strnset: %sn", string);
strnset(string, letter, 13);
printf("string after strnset: %sn", string);
return 0;
}
函數名: strpbrk
功 能: 在串中查找給定字元集中的字元
用 法: char *strpbrk(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string1 = "abcdefghijklmnopqrstuvwxyz";
char *string2 = "onm";
char *ptr;
ptr = strpbrk(string1, string2);
if (ptr)
printf("strpbrk found first character: %cn", *ptr);
else
printf("strpbrk didn't find character in setn");
return 0;
}
函數名: strrchr
功 能: 在串中查找指定字元的最後一個出現
用 法: char *strrchr(char *str, char c);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char string[15];
char *ptr, c = 'r';
strcpy(string, "This is a string");
ptr = strrchr(string, c);
if (ptr)
printf("The character %c is at position: %dn", c, ptr-string);
else
printf("The character was not foundn");
return 0;
}
函數名: strrev
功 能: 串倒轉
用 法: char *strrev(char *str);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char *forward = "string";
printf("Before strrev(): %sn", forward);
strrev(forward);
printf("After strrev(): %sn", forward);
return 0;
}
函數名: strset
功 能: 將一個串中的所有字元都設為指定字元
用 法: char *strset(char *str, char c);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10] = "123456789";
char symbol = 'c';
printf("Before strset(): %sn", string);
strset(string, symbol);
printf("After strset(): %sn", string);
return 0;
}
函數名: strspn
功 能: 在串中查找指定字元集的子集的第一次出現
用 法: int strspn(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
#include <alloc.h>
int main(void)
{
char *string1 = "1234567890";
char *string2 = "123DC8";
int length;
length = strspn(string1, string2);
printf("Character where strings differ is at position %dn", length);
return 0;
}
函數名: strstr
功 能: 在串中查找指定字元串的第一次出現
用 法: char *strstr(char *str1, char *str2);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *str1 = "Borland International", *str2 = "nation", *ptr;
ptr = strstr(str1, str2);
printf("The substring is: %sn", ptr);
return 0;
}
函數名: strtod
功 能: 將字元串轉換為double型值
用 法: double strtod(char *str, char **endptr);
程序例:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char input[80], *endptr;
double value;
printf("Enter a floating point number:");
gets(input);
value = strtod(input, &endptr);
printf("The string is %s the number is %lfn", input, value);
return 0;
}
函數名: strtok
功 能: 查找由在第二個串中指定的分界符分隔開的單詞
用 法: char *strtok(char *str1, char *str2);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char input[16] = "abc,d";
char *p;
/* strtok places a NULL terminator
in front of the token, if found */
p = strtok(input, ",");
if (p) printf("%sn", p);
/* A second call to strtok using a NULL
as the first parameter returns a pointer
to the character following the token */
p = strtok(NULL, ",");
if (p) printf("%sn", p);
return 0;
}
函數名: strtol
功 能: 將串轉換為長整數
用 法: long strtol(char *str, char **endptr, int base);
程序例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *string = "87654321", *endptr;
long lnumber;
/* strtol converts string to long integer */
lnumber = strtol(string, &endptr, 10);
printf("string = %s long = %ldn", string, lnumber);
return 0;
}
函數名: strupr
功 能: 將串中的小寫字母轉換為大寫字母
用 法: char *strupr(char *str);
程序例:
#include <stdio.h>
#include <string.h>
int main(void)
{
char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;
/* converts string to upper case characters */
ptr = strupr(string);
printf("%sn", ptr);
return 0;
}
函數名: swab
功 能: 交換位元組
用 法: void swab (char *from, char *to, int nbytes);
程序例:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char source[15] = "rFna koBlrna d";
char target[15];
int main(void)
{
swab(source, target, strlen(source));
printf("This is target: %sn", target);
return 0;
}
PS:isalpha()是字元函數,不是字元串函數,
isalpha
原型:extern int isalpha(int c);
用法:#include <ctype.h>
功能:判斷字元c是否為英文字母
說明:當c為英文字母a-z或A-Z時,返回非零值,否則返回零。
舉例:
// isalpha.c
#include <syslib.h>
#include <ctype.h>
#include <stdio.h>
main()
{
int c;
clrscr(); // clear screen
printf("Press a key");
for(;;)
{
c=getchar();
clrscr();
printf("%c: %s letter",c,isalpha(c)?"is":"not");
}
return 0; // just to avoid warnings by compiler
}
⑹ PHP常用函數有哪些
常用函數比較多
如:字元串處理函數,數組函數,日期函數,MySQL函數,文件系統函數,GD函數庫等
⑺ php中有幾個截取字元創的函數
函數名 作用 php版本
chr() 從指定的 ASCII 值返回字元。 3
chunk_split() 把字元串分割為一連串更小的部分。 3
count_chars() 返回字元串所用字元的信息。 4
explode() 把字元串打散為數組。 3
implode() 把數組元素組合為一個字元串。 3
join() implode() 的別名。 3
levenshtein() 返回兩個字元串之間的 Levenshtein 距離。 3
localeconv() 返回包含本地數字及貨幣信息格式的數組。 4
ltrim() 從字元串左側刪除空格或其他預定義字元。 3
md5() 計算字元串的 MD5 散列。 3
md5_file() 計算文件的 MD5 散列。 4
metaphone() 計算字元串的 metaphone 鍵。 4
money_format() 把字元串格式化為貨幣字元串。 4
nl_langinfo() 返回指定的本地信息。 4
nl2br() 在字元串中的每個新行之前插入 HTML 換行符。 3
number_format() 通過千位分組來格式化數字。 3
parse_str() 把查詢字元串解析到變數中。 3
print() 輸出一個或多個字元串。 3
printf() 輸出格式化的字元串。 3
similar_text() 計算兩個字元串的匹配字元的數目。 3
sprintf() 把格式化的字元串寫寫入一個變數中。 3
str_ireplace() 替換字元串中的一些字元。(對大小寫不敏感) 5
str_replace() 替換字元串中的一些字元。(對大小寫敏感) 3
str_split() 把字元串分割到數組中。 5
strcasecmp() 比較兩個字元串。(對大小寫不敏感) 3
strchr() 搜索字元串在另一字元串中的第一次出現。strstr() 的別名 3
strcspn() 返回在找到任何指定的字元之前,在字元串查找的字元數。 3
stripos() 返回字元串在另一字元串中第一次出現的位置(大小寫不敏感) 5
stristr() 查找字元串在另一字元串中第一次出現的位置(大小寫不敏感) 3
strlen() 返回字元串的長度。 3
strpbrk() 在字元串中搜索指定字元中的任意一個。 5
strpos() 返回字元串在另一字元串中首次出現的位置(對大小寫敏感) 3
strrchr() 查找字元串在另一個字元串中最後一次出現的位置。 3
strripos() 查找字元串在另一字元串中最後出現的位置(對大小寫不敏感) 5
strrpos() 查找字元串在另一字元串中最後出現的位置(對大小寫敏感) 3
strspn() 返回在字元串中包含的特定字元的數目。 3
strstr() 搜索字元串在另一字元串中的首次出現(對大小寫敏感) 3
strtok() 把字元串分割為更小的字元串。 3
strtr() 轉換字元串中特定的字元。 3
substr() 返回字元串的一部分。 3
substr_compare() 從指定的開始長度比較兩個字元串。 5
substr_count() 計運算元串在字元串中出現的次數。 4
substr_replace() 把字元串的一部分替換為另一個字元串。 4
ucwords() 把字元串中每個單詞的首字元轉換為大寫。 3
wordwrap() 按照指定長度對字元串進行折行處理。 4