Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1652046
  • 博文数量: 1481
  • 博客积分: 26784
  • 博客等级: 上将
  • 技术积分: 17045
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-12 09:22
文章分类

全部博文(1481)

文章存档

2014年(10)

2013年(353)

2012年(700)

2011年(418)

分类: IT业界

2011-07-20 13:29:22

对于常见字符串进行了大致的总结,不足之处,大家多多指教!

分割函数
explode —— 使用一个字符串分割另一个字符串
array explode ( string separator, string string [, int limit] )
此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 separator 作为边界点分割出来。如果设置了 limit 参数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。
如果 separator 为空字符串("",只是两个双引号,中间什么也没有),explode() 将返回 FALSE。如果 separator 所包含的值在 string 中找不到,那么 explode() 将返回包含 string 单个元素的数组。
如果 limit 参数是负数,则返回除了最后的 limit 个元素外的所有元素。必须保证 separator 参数在 string 参数之前才行。
// 示例1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces{0}; // piece1
echo $pieces{1}; // piece2
注:也可以用以下方式输出,但为了区分数组推荐用上面的
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

//示例2
$str = 'one|two|three|four';
// 正数的 limit
print_r(explode('|', $str, 2));
// 负数的 limit
print_r(explode('|', $str, -1));
?>
以上示例将输出:
Array
(
[0] => one
[1] => two|three|four
)
Array
(
[0] => one
[1] => two
[2] => three
)
连接函数:
implode —— 把数组中的所有元素组合为一个字符串,函数join()为该函数的别名
string implode ( string glue, array pieces )

此函数返回一个字符串,包含数组中所有元素且与数组中元素顺序一致,用glue连接各个元素

//示例
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

?>
注:implode中的参数可以调换位置,上例中也可这样写implode($array,",");

删除字符串两端的其他字符:
trim ——删除字符串首尾的其他字符
string trim ( string str [, string charlist] )

此函数返回一个字符串,这是一个去掉str首尾指定字符(charlist)的字符串,如果不加第二个参数,trim()默认删除str首尾的以下字符:
? " " (ASCII 32 (0x20)), 空格.
? "\t" (ASCII 9 (0x09)), 制表符.
? "\n" (ASCII 10 (0x0A)), 换行符.
? "\" (ASCII 13 (0x0D)), 回车符.
? "\" (ASCII 0 (0x00)), the NUL-byte.
? "\x0B" (ASCII 11 (0x0B)),垂直制表符.

$text = "\t\tThese are a few words :) ... ";

echo trim($text); // "These are a few words :) ..."
echo trim($text, " \t."); // "These are a few words :)"
?>

ltrim —— 只删除字符串首部的其他字符
string ltrim ( string str [, string charlist] )

此函数返回一个字符串,这是一个去掉str首部指定字符(charlist)的字符串,如果不加第二个参数,ltrim()默认删除str首尾的字符同trim一样

$text = "\t\tThese are a few words :) ... ";
$trimmed = ltrim($text);
// $trimmed = "These are a few words :) ... "
$trimmed = ltrim($text, " \t.");
// $trimmed = "These are a few words :) ... "
?>

rtrim —— 只删除字符串尾部的其他字符
string rtrim ( string str [, string charlist] )

此函数返回一个字符串,这是一个去掉str尾部指定字符(charlist)的字符串,如果不加第二个参数,ltrim()默认删除str首尾的字符同trim一样

$text = "\t\tThese are a few words :) ... ";
$trimmed = rtrim($text);
// $trimmed = "\t\tThese are a few words :) ..."
$trimmed = rtrim($text, " \t.");
// $trimmed = "\t\tThese are a few words :)"
?>
在以上三个函数的charlist都可以使用a..z来删除a到z之间的所有字符,连续字符用”..”连接

替换函数:
str_replace —— 用出现在replace中的字符串去替换被处理字符串中的search字符串
mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )

此函数返回一个字符串或数组,被处理字符串或数组subject中所有search字符串或数组被replace字符串或数组替换。(search属于subject,replace是要替换为的字符串)

// Provides:
$bodytag = str_replace("%body%", "black", "");
// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
// Provides: 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);
// Use of the count parameter is available as of PHP 5.0.0
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count; // 2
?>
str_ireplace 替换时忽略大小写,其用法同str_replace
注:使用数组替换时,两个数组中的元素个数必须一样

strtr —— 逐个把from字符串中的每个字符替换为to字符串中对应的每个字符
string strtr ( string str, string from, string to )
string strtr ( string str, array replace_pairs )

此函数返回一个字符串,有两种替换形式,一种是字符串替换,一种是数组对替换,数组对替换中的数组的键名和值分别相当于from和to,不过元素中的键名和值作为一个整体来逐个对应替换

$str = "";
echo $str."
";
$nstr=strtr($str,"comp", "net#");//$nstr =htt#://
echo $nstr;
?>

$trans = array("hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);// hello all, I said hi
?>

重复输出字符串函数
str_repeat —— 重复输出一个字符串
string str_repeat ( string input, int multiplier )

此函数返回一个重复multiplier次的字符串,如果multiplier为0,则返回空字符串

echo str_repeat("-=", 10);// -=-=-=-=-=-=-=-=-=-=
?>

str_pad —— 用一个字符串去填充另一个字符串,最终字符串长度为指定长度
string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]] )

此函数返回一个字符串,填充字符串在原字符串的左边,右边或则两边,填充后的字符串总长度为指定的长度,若指定长度小于填充后的字符串,超出部分不填充。如果没有指定填充字符串pad_string,默认填充字符串为空格。pad_type可以是 STR_PAD_RIGH,STR_PAD_LEFT,STR_PAD_BOTH分别代表右、左、两边填充方式

$input = "Alien";
echo str_pad($input, 10); // produces "Alien "
echo str_pad($input, 10, "-=", STR_PAD_LEFT); // produces "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH); // produces "__Alien___"
echo str_pad($input, 6 , "___"); // produces "Alien_"
?>

查找函数:
strstr —— 查找第一次出现的的位置
string strstr ( string haystack, string needle )

此函数返回一个字符串,该字符串是haystack字符串从第一次出现needle的位置到其字符串结尾的部分字符串,如果needle不存在,返回false。如果needle是整数,则把它看作ASSII编码转换为对应字符

$email = 'user@';
$domain = strstr($email, '@');
echo $domain; // 输出: @
?>

stristr —— 意义用法同strstr,但它不区分大小写

strops —— 查找第一次出现的位置
int strpos ( string haystack, mixed needle [, int offset] )

此函数返回一个整数,该整数为needle第一次出现在haystack字符串中的位置,如果needle不存在,则返回false。如果使用offset,则在offset前出现的needle都忽略

$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);

// Note our use of ===. Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
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";
}

// We can search for the character, ignoring anything before the offset
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, not 0
?>

strrpos —— 查找字符最后一次出现在字符串中的位置
int strrpos ( string haystack, string needle [, int offset] )

此函数返回needle在haystack中出现的最后一次的位置,如果needle不存在,返回false,offset>0时从前向后offset位置处向后查找,offset<0时则从后往前查找offset个位置前的最后一次出现的位置

$mystring = “acdefjbk”;
$pos = strrpos($mystring, "b");
echo $pos;//6
?>

提取函数:
substr —— 提取字符串的一部分
string substr ( string string, int start [, int length] )

此函数返回从指定的开始位置start取length长度的字符串,不指定长度的话,默认到字符串结束,start为非负数,如果为负数,则从后往前来确定位

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
// Accessing single characters in a string
// can also be achived using "curly braces"
$string = 'abcdef';
echo $string{0}; // a
echo $string{3}; // d
echo $string{strlen($string)-1}; // f

?>
$rest = substr("abcdef", -1); // returns "f"
$rest = substr("abcdef", -2); // returns "ef"
$rest = substr("abcdef", -3, 1); // returns "d"
?>

原文地址:

阅读(377) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~