php字符串函數 str類常見用法示例
本文實例講述了php字符串函數 str類常見用法。分享給大家供大家參考,具體如下:
str_split(string, leg);//將一個字符 串轉換為數組,參數1:要被轉換的字符串,參數2:每 段長度, 返回一個轉換后的數組
例:
<?php$str = 'Hello Friend';$arr = str_split($str, 3);
Array( [0] => Hel [1] => lo [2] => Fri [3] => end)
ord(string);//返回字符的ASCII碼值,,,返回字符串string第一個字符的ASCII碼值
例:$test = ’abc’;
$offset = 0;while ($offset >= 0) { echo $offset.': '.ordutf8($text, $offset).'n'; // 97,98,99
sizeof();//count()的別名
end();//將數組的內部指針指向最后一個單元
<?php$fruits = array(’apple’, ’banana’, ’cranberry’);echo end($fruits); // cranberry?>
strlen($string);//獲取字符串長度
例:
echo strlen(’hai’);//3
sprintf(format, arg1, arg2, arg++);//把格式化的字符串寫入變量中。
format:規定字符串以及如何格式化其中的變量 arg1:規定插到 format 字符串中第一個 % 符號處的參數。 arg2:規定插到 format 字符串中第二個 % 符號處的參數。例:
<?php$num1 = 123456789;$num2 = -123456789;$char = 50; // ASCII 字符 50 是 2// 注釋:格式值 '%%' 返回百分號echo sprintf('%%b = %b',$num1).'<br>'; // 二進制數echo sprintf('%%c = %c',$char).'<br>'; // ASCII 字符echo sprintf('%%d = %d',$num1).'<br>'; // 帶符號的十進制數echo sprintf('%%d = %d',$num2).'<br>'; // 帶符號的十進制數echo sprintf('%%e = %e',$num1).'<br>'; // 科學計數法(小寫)echo sprintf('%%E = %E',$num1).'<br>'; // 科學計數法(大學)echo sprintf('%%u = %u',$num1).'<br>'; // 不帶符號的十進制數(正)echo sprintf('%%u = %u',$num2).'<br>'; // 不帶符號的十進制數(負)echo sprintf('%%f = %f',$num1).'<br>'; // 浮點數(視本地設置)echo sprintf('%%F = %F',$num1).'<br>'; // 浮點數(不視本地設置)echo sprintf('%%g = %g',$num1).'<br>'; // 短于 %e 和 %fecho sprintf('%%G = %G',$num1).'<br>'; // 短于 %E 和 %fecho sprintf('%%o = %o',$num1).'<br>'; // 八進制數echo sprintf('%%s = %s',$num1).'<br>'; // 字符串echo sprintf('%%x = %x',$num1).'<br>'; // 十六進制數(小寫)echo sprintf('%%X = %X',$num1).'<br>'; // 十六進制數(大寫)echo sprintf('%%+d = %+d',$num1).'<br>'; // 符號說明符(正)echo sprintf('%%+d = %+d',$num2).'<br>'; // 符號說明符(負)?>
返回結果:
%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:為正數時,從$string的start位置開始,為負數時,從$string的末尾開始,,,, $lenght:為正數時,表示被替換的子字符串的長度。為負數時,表示待替換的子字符串結尾處距離string末端的字符個數。<?php$var = ’ABCDEFGH:/MNRPQR/’;echo 'Original: $var<hr />n'; /* 這兩個例子使用 'bob' 替換整個 $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'; /* 下面兩個例子使用 '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();//查找字符串首次出現的位置。
1、
<?php// 忽視位置偏移量之前的字符進行查找$newstring = ’abcdef abcdef’;$pos = strpos($newstring, ’a’, 1); // $pos = 7, 不是 0?>
2、
<?php$mystring = ’abc’;$findme = ’a’;$pos = strpos($mystring, $findme); // 使用 !== 操作符。使用 != 不能像我們期待的那樣工作,// 因為 ’a’ 的位置是 0。語句 (0 != false) 的結果是 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); // 注意這里使用的是 ===。簡單的 == 不能像我們期待的那樣工作,// 因為 ’a’ 是第 0 位置上的(第一個)字符。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);//通過一個正則表達式分隔字符串;
$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);//使用一個字符串分割另一個字符串
$del:分隔符 $str :字符串 $limit:如果設置了 limit 參數并且是正數,則返回的數組包含最多 limit 個元素,而最后那個元素將包含 string 的剩余部分。如果 limit 參數是負數,則返回除了最后的 -limit 個元素外的所有元素,如果 limit 是 0,則會被當做 1。<?php$str = ’one|two|three|four’; // 正數的 limitprint_r(explode(’|’, $str, 2)); // 負數的 limit(自 PHP 5.1 起)print_r(explode(’|’, $str, -1));?>
以上例程會輸出:
Array( [0] => one [1] => two|three|four)Array( [0] => one [1] => two [2] => three)
parse_str($str);//將字符串解析成多個變量
$str = 'first=value&arr[]=foo+bar&arr[]=baz';parse_str($str);echo $first; // valueecho $arr[0]; // foo barecho $arr[1]; // baz parse_str($str, $output);echo $output[’first’]; // valueecho $output[’arr’][0]; // foo barecho $output[’arr’][1]; // baz
strstr($string,$needle,$before_needle);//查找字符串的首次出現
string,輸入字符串。 needle,如果 needle 不是一個字符串,那么它將被轉化為整型并且作為字符的序號來使用。 before_needle,若為 TRUE,strstr() 將返回 needle 在 haystack 中的位置之前的部分。<?php$email = ’[email protected]’;$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 參數指定的子字符串)
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、
<?phpecho substr(’abcdef’, 1); // bcdefecho substr(’abcdef’, 1, 3); // bcdecho substr(’abcdef’, 0, 4); // abcdecho substr(’abcdef’, 0, 8); // abcdefecho substr(’abcdef’, -1, 1); // f // 訪問字符串中的單個字符// 也可以使用中括號$string = ’abcdef’;echo $string[0]; // aecho $string[3]; // decho $string[strlen($string)-1]; // f?>
strtr();//轉換指定字符
string strtr ( string $str , string $from , string $to )
string strtr ( string $str , array $replace_pairs )
該函數返回 str 的一個副本,并將在 from 中指定的字符轉換為 to 中相應的字符。 比如, $from[$n]中每次的出現都會被替換為 $to[$n],其中 $n 是兩個參數都有效的位移(offset)。
如果 from 與 to 長度不相等,那么多余的字符部分將被忽略。 str 的長度將會和返回的值一樣。
1、
使用兩個參數的 strtr() 范例
<?php$trans = array('hello' => 'hi', 'hi' => 'hello');echo strtr('hi all, I said hello', $trans);?>
以上例程會輸出:
hello all, I said hi
2、
<?phpecho strtr('baab', 'ab', '01'),'n'; $trans = array('ab' => '01');echo strtr('baab', $trans);?>
以上例程會輸出:
1001ba01
str_replace(mixed $search , mixed $replace , mixed $subject [, int &$count ]);//子字符串替換
該函數返回一個字符串或者數組。該字符串或數組是將 subject 中全部的 search 都被 replace 替換之后的結果
<?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 1nLine 2rLine 3rnLine 4n';$order = array('rn', 'n', 'r');$replace = ’<br />’; // 首先替換 rn 字符,因此它們不會被兩次轉換$newstr = str_replace($order, $replace, $str); // 輸出 F ,因為 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;?>
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php常用函數與技巧總結》、《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章: