php字符串函數(shù) str類常見用法示例
本文實(shí)例講述了php字符串函數(shù) str類常見用法。分享給大家供大家參考,具體如下:
str_split(string, leg);//將一個(gè)字符 串轉(zhuǎn)換為數(shù)組,參數(shù)1:要被轉(zhuǎn)換的字符串,參數(shù)2:每 段長(zhǎng)度, 返回一個(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);//獲取字符串長(zhǎng)度
例:
echo strlen('hai');//3
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)說(shuō)明符(正) echo sprintf("%%+d = %+d",$num2)."<br>"; // 符號(hào)說(shuō)明符(負(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:用來(lái)替換的字符串,
- $start:為正數(shù)時(shí),從$string的start位置開始,為負(fù)數(shù)時(shí),從$string的末尾開始,,,,
- $lenght:為正數(shù)時(shí),表示被替換的子字符串的長(zhǎng)度。為負(fù)數(shù)時(shí),表示待替換的子字符串結(jié)尾處距離string末端的字符個(gè)數(shù)。
<?php $var = 'ABCDEFGH:/MNRPQR/'; echo "Original: $var<hr />\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。語(yǔ)句 (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);//通過(guò)一個(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=value&arr[]=foo+bar&arr[]=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)來(lái)使用。
- 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 // 訪問(wèn)字符串中的單個(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 長(zhǎng)度不相等,那么多余的字符部分將被忽略。 str 的長(zhǎng)度將會(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基本語(yǔ)法入門教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php讀取torrent種子文件內(nèi)容的方法(測(cè)試可用)
這篇文章主要介紹了php讀取torrent種子文件內(nèi)容的方法,可實(shí)現(xiàn)讀取并顯示torrent種子文件內(nèi)容的功能,簡(jiǎn)單實(shí)用,需要的朋友可以參考下2016-05-05PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之對(duì)象的遍歷操作示例
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之對(duì)象的遍歷操作,結(jié)合具體實(shí)例形式分析了php面向?qū)ο蟪绦蛟O(shè)計(jì)中對(duì)象屬性遍歷的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-06-06php基于dom實(shí)現(xiàn)讀取圖書xml格式數(shù)據(jù)的方法
這篇文章主要介紹了php基于dom實(shí)現(xiàn)讀取圖書xml格式數(shù)據(jù)的方法,涉及php基于dom針對(duì)xml格式文件的讀取操作相關(guān)技巧,需要的朋友可以參考下2017-02-02PHPMailer的主要功能特點(diǎn)和簡(jiǎn)單使用說(shuō)明
本篇文章主要是對(duì)PHPMailer的主要功能特點(diǎn)和簡(jiǎn)單使用說(shuō)明進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02使用PHP遍歷文件目錄與清除目錄中文件的實(shí)現(xiàn)詳解
本篇文章是對(duì)使用PHP遍歷文件目錄與清除目錄中文件的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06簡(jiǎn)介PHP的Yii框架中緩存的一些高級(jí)用法
這篇文章主要介紹了PHP的Yii框架中緩存的一些高級(jí)用法,包括頁(yè)面緩存與會(huì)話緩存限制器等內(nèi)容,需要的朋友可以參考下2016-03-03PHP登錄環(huán)節(jié)防止sql注入的方法淺析
這篇文章主要介紹了PHP登錄環(huán)節(jié)防止sql注入的方法,需要的朋友可以參考下2014-06-06PHP中cookie知識(shí)點(diǎn)學(xué)習(xí)
我們給大家總結(jié)了PHP中cookie的詳細(xì)用法以及重要知識(shí)點(diǎn),對(duì)此有興趣的朋友可以參考學(xué)習(xí)下。2018-05-05php倒計(jì)時(shí)出現(xiàn)-0情況的解決方法
這篇文章主要介紹了php倒計(jì)時(shí)出現(xiàn)-0情況的解決方法,實(shí)例分析了php倒計(jì)時(shí)程序出現(xiàn)-0的原因及相應(yīng)的解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07