本文實(shí)例講述了php字符串函數(shù) str類常見用法。分享給大家供大家參考,具體如下:
str_split(string, leg);//將一個(gè)字符 串轉(zhuǎn)換為數(shù)組,參數(shù)1:要被轉(zhuǎn)換的字符串,參數(shù)2:每 段長度, 返回一個(gè)轉(zhuǎn)換后的數(shù)組
例:
?php
$str = "Hello Friend";
$arr = str_split($str, 3);
Array
(
[0] => Hel
[1] => lo
[2] => Fri
[3] => end
)
ord(string);//返回字符的ASCII碼值,,,返回字符串string第一個(gè)字符的ASCII碼值
例:$test = 'abc';
$offset = 0;
while ($offset >= 0) {
echo $offset.": ".ordutf8($text, $offset)."\n";
// 97,98,99
sizeof();//count()的別名
end();//將數(shù)組的內(nèi)部指針指向最后一個(gè)單元
?php
$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry
?>
strlen($string);//獲取字符串長度
例:
sprintf(format, arg1, arg2, arg++);//把格式化的字符串寫入變量中。
- format:規(guī)定字符串以及如何格式化其中的變量
- arg1:規(guī)定插到 format 字符串中第一個(gè) % 符號(hào)處的參數(shù)。
- arg2:規(guī)定插到 format 字符串中第二個(gè) % 符號(hào)處的參數(shù)。
例:
?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2
// 注釋:格式值 "%%" 返回百分號(hào)
echo sprintf("%%b = %b",$num1)."br>"; // 二進(jìn)制數(shù)
echo sprintf("%%c = %c",$char)."br>"; // ASCII 字符
echo sprintf("%%d = %d",$num1)."br>"; // 帶符號(hào)的十進(jìn)制數(shù)
echo sprintf("%%d = %d",$num2)."br>"; // 帶符號(hào)的十進(jìn)制數(shù)
echo sprintf("%%e = %e",$num1)."br>"; // 科學(xué)計(jì)數(shù)法(小寫)
echo sprintf("%%E = %E",$num1)."br>"; // 科學(xué)計(jì)數(shù)法(大學(xué))
echo sprintf("%%u = %u",$num1)."br>"; // 不帶符號(hào)的十進(jìn)制數(shù)(正)
echo sprintf("%%u = %u",$num2)."br>"; // 不帶符號(hào)的十進(jìn)制數(shù)(負(fù))
echo sprintf("%%f = %f",$num1)."br>"; // 浮點(diǎn)數(shù)(視本地設(shè)置)
echo sprintf("%%F = %F",$num1)."br>"; // 浮點(diǎn)數(shù)(不視本地設(shè)置)
echo sprintf("%%g = %g",$num1)."br>"; // 短于 %e 和 %f
echo sprintf("%%G = %G",$num1)."br>"; // 短于 %E 和 %f
echo sprintf("%%o = %o",$num1)."br>"; // 八進(jìn)制數(shù)
echo sprintf("%%s = %s",$num1)."br>"; // 字符串
echo sprintf("%%x = %x",$num1)."br>"; // 十六進(jìn)制數(shù)(小寫)
echo sprintf("%%X = %X",$num1)."br>"; // 十六進(jìn)制數(shù)(大寫)
echo sprintf("%%+d = %+d",$num1)."br>"; // 符號(hào)說明符(正)
echo sprintf("%%+d = %+d",$num2)."br>"; // 符號(hào)說明符(負(fù))
?>
返回結(jié)果:
%b = 111010110111100110100010101
%c = 2
%d = 123456789
%d = -123456789
%e = 1.234568e+8
%E = 1.234568E+8
%u = 123456789
%u = 18446744073586094827
%f = 123456789.000000
%F = 123456789.000000
%g = 1.23457e+8
%G = 1.23457E+8
%o = 726746425
%s = 123456789
%x = 75bcd15
%X = 75BCD15
%+d = +123456789
%+d = -123456789
substr_replace(mixed $string , mixed $replacement , mixed $start [, mixed $length ]);// 替換字符串的子串
- $string:輸入的字符串,
- $replacement:用來替換的字符串,
- $start:為正數(shù)時(shí),從$string的start位置開始,為負(fù)數(shù)時(shí),從$string的末尾開始,,,,
- $lenght:為正數(shù)時(shí),表示被替換的子字符串的長度。為負(fù)數(shù)時(shí),表示待替換的子字符串結(jié)尾處距離string末端的字符個(gè)數(shù)。
?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $varhr />\n";
/* 這兩個(gè)例子使用 "bob" 替換整個(gè) $var。*/
echo substr_replace($var, 'bob', 0) . "br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "br />\n";
/* 將 "bob" 插入到 $var 的開頭處。*/
echo substr_replace($var, 'bob', 0, 0) . "br />\n";
/* 下面兩個(gè)例子使用 "bob" 替換 $var 中的 "MNRPQR"。*/
echo substr_replace($var, 'bob', 10, -1) . "br />\n";
echo substr_replace($var, 'bob', -7, -1) . "br />\n";
/* 從 $var 中刪除 "MNRPQR"。*/
echo substr_replace($var, '', 10, -1) . "br />\n";
?>
strpos();//查找字符串首次出現(xiàn)的位置。
1、
?php
// 忽視位置偏移量之前的字符進(jìn)行查找
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0
?>
2、
?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// 使用 !== 操作符。使用 != 不能像我們期待的那樣工作,
// 因?yàn)?'a' 的位置是 0。語句 (0 != false) 的結(jié)果是 false。
if ($pos !== false) {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
} else {
echo "The string '$findme' was not found in the string '$mystring'";
}
?>
3、
?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// 注意這里使用的是 ===。簡(jiǎn)單的 == 不能像我們期待的那樣工作,
// 因?yàn)?'a' 是第 0 位置上的(第一個(gè))字符。
if ($pos === false) {
echo "The string '$findme' was not found in the string '$mystring'";
} else {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
}
?>
preg_split($pet, $str);//通過一個(gè)正則表達(dá)式分隔字符串;
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
輸出:
array(3) {
[0]=> string(9) "hypertext"
[1]=> string(8) "language"
[2]=> string(11) "programming"
}
explode($del, $str, $limit);//使用一個(gè)字符串分割另一個(gè)字符串
- $del:分隔符
- $str :字符串
- $limit:如果設(shè)置了 limit 參數(shù)并且是正數(shù),則返回的數(shù)組包含最多 limit 個(gè)元素,而最后那個(gè)元素將包含 string 的剩余部分。如果 limit 參數(shù)是負(fù)數(shù),則返回除了最后的 -limit 個(gè)元素外的所有元素,如果 limit 是 0,則會(huì)被當(dāng)做 1。
?php
$str = 'one|two|three|four';
// 正數(shù)的 limit
print_r(explode('|', $str, 2));
// 負(fù)數(shù)的 limit(自 PHP 5.1 起)
print_r(explode('|', $str, -1));
?>
以上例程會(huì)輸出:
Array
(
[0] => one
[1] => two|three|four
)
Array
(
[0] => one
[1] => two
[2] => three
)
parse_str($str);//將字符串解析成多個(gè)變量
$str = "first=valuearr[]=foo+bararr[]=baz";
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
strstr($string,$needle,$before_needle);//查找字符串的首次出現(xiàn)
- string,輸入字符串。
- needle,如果 needle 不是一個(gè)字符串,那么它將被轉(zhuǎn)化為整型并且作為字符的序號(hào)來使用。
- before_needle,若為 TRUE,strstr() 將返回 needle 在 haystack 中的位置之前的部分。
?php
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // 打印 @example.com
$user = strstr($email, '@', true); // 從 PHP 5.3.0 起
echo $user; // 打印 name
?>
substr($string,$start,$lenght);// 返回字符串的子串(返回字符串 string 由 start 和 length 參數(shù)指定的子字符串)
1、
?php
$rest = substr("abcdef", -1); // 返回 "f"
$rest = substr("abcdef", -2); // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d"
?>
2、
?php
$rest = substr("abcdef", 0, -1); // 返回 "abcde"
$rest = substr("abcdef", 2, -1); // 返回 "cde"
$rest = substr("abcdef", 4, -4); // 返回 ""
$rest = substr("abcdef", -3, -1); // 返回 "de"
?>
3、
?php
echo substr('abcdef', 1); // bcdef
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
// 訪問字符串中的單個(gè)字符
// 也可以使用中括號(hào)
$string = 'abcdef';
echo $string[0]; // a
echo $string[3]; // d
echo $string[strlen($string)-1]; // f
?>
strtr();//轉(zhuǎn)換指定字符
string strtr ( string $str , string $from , string $to )
string strtr ( string $str , array $replace_pairs )
該函數(shù)返回 str 的一個(gè)副本,并將在 from 中指定的字符轉(zhuǎn)換為 to 中相應(yīng)的字符。 比如, $from[$n]中每次的出現(xiàn)都會(huì)被替換為 $to[$n],其中 $n 是兩個(gè)參數(shù)都有效的位移(offset)。
如果 from 與 to 長度不相等,那么多余的字符部分將被忽略。 str 的長度將會(huì)和返回的值一樣。
1、
使用兩個(gè)參數(shù)的 strtr() 范例
?php
$trans = array("hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>
以上例程會(huì)輸出:
hello all, I said hi
2、
?php
echo strtr("baab", "ab", "01"),"\n";
$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>
以上例程會(huì)輸出:
1001
ba01
str_replace(mixed $search , mixed $replace , mixed $subject [, int $count ]);//子字符串替換
該函數(shù)返回一個(gè)字符串或者數(shù)組。該字符串或數(shù)組是將 subject 中全部的 search 都被 replace 替換之后的結(jié)果
?php
// 賦值: body text='black'>
$bodytag = str_replace("%body%", "black", "body text='%body%'>");
// 賦值: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
// 賦值: You should eat pizza, beer, and ice cream every day
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);
// 賦值: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>
?php
// 替換順序
$str = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order = array("\r\n", "\n", "\r");
$replace = 'br />';
// 首先替換 \r\n 字符,因此它們不會(huì)被兩次轉(zhuǎn)換
$newstr = str_replace($order, $replace, $str);
// 輸出 F ,因?yàn)?A 被 B 替換,B 又被 C 替換,以此類推...
// 由于從左到右依次替換,最終 E 被 F 替換
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
// 輸出: apearpearle pear
// 由于上面提到的原因
$letters = array('a', 'p');
$fruit = array('apple', 'pear');
$text = 'a p';
$output = str_replace($letters, $fruit, $text);
echo $output;
?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php常用函數(shù)與技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- C語言字符函數(shù)、內(nèi)存函數(shù)功能及實(shí)現(xiàn)代碼
- C語言去除相鄰重復(fù)字符函數(shù)的實(shí)現(xiàn)方法
- PHP常用字符串函數(shù)用法實(shí)例總結(jié)
- SQL SERVER2012中新增函數(shù)之字符串函數(shù)CONCAT詳解
- 深入了解C語言字符函數(shù)和字符串函數(shù)