`
javayestome
  • 浏览: 1040938 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[28期] 字符串函数总结

 
阅读更多

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

分割函数
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 参数之前才行。
<?php
// 示例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

<?php
//示例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连接各个元素

<?php
//示例
$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)),垂直制表符.
<?php

$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一样

<?php
$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一样

<?php
$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是要替换为的字符串)

<?php
// Provides: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
// 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,不过元素中的键名和值作为一个整体来逐个对应替换

<?php
$str = "http://www.phpbaiduphp.com/php/index.php";
echo $str."<br>";
$nstr=strtr($str,"comp", "net#");//$nstr =htt#://www.#h#baidu#h#.net/#h#/index.#h#
echo $nstr;
?>

<?php
$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,则返回空字符串

<?php
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分别代表右、左、两边填充方式

<?php
$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编码转换为对应字符

<?php
$email = 'user@exam@ple.com';
$domain = strstr($email, '@');
echo $domain; // 输出: @exam@ple.com
?>

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

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

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

<?php
$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个位置前的最后一次出现的位置

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

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

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

<?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
// 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

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

分享到:
评论

相关推荐

    Delphi 的字符及字符串.doc

    在 Delphi 编程语言中,字符和字符串的处理是...总结来说,Delphi 中的字符和字符串类型提供了灵活的处理方式,适应不同的编码需求和兼容性场景。理解这些类型的特点和使用规则,有助于编写高效、安全的 Delphi 代码。

    PHP封装的字符串加密解密函数

    使用`authcode`加密解密字符串,开发者可以通过`authcode('str', 'ENCODE', '密钥', '有效期')`进行加密,`authcode('密文', 'DECODE', '密钥')`进行解密。 总结起来,PHP中的加密解密方法多种多样,包括上述自定义...

    PHP程序设计-3期(KC016) 2.8.3字符串截取 常见问题.docx

    在PHP程序设计中,字符串处理是一项基础且重要的技能,特别是在文档标题提到的“3期(KC016)2.8.3字符串截取”这一部分。字符串截取是指从一个较长的字符串中提取出一部分内容,这在很多场景下都非常常见,比如处理...

    PHP程序设计-3期(KC016) 2.8.1字符串长度 常见问题.docx

    `mb_strlen()`是PHP的多字节字符串函数,它可以正确处理各种字符编码,包括UTF-8。它允许你指定字符串的编码类型,从而提供更精确的长度计算。然而,如果不设置编码,`mb_strlen()`可能会根据服务器的默认配置来猜测...

    PHP程序设计-3期(KC016) 2.8.3字符串截取 拓展知识.doc

    本节将深入探讨如何使用`substr()`函数以及`mb_substr()`函数来实现字符串截取,特别是在处理UTF-8编码的字符串时的方法。 首先,我们来看`substr()`函数。这是一个内置的PHP函数,用于从字符串的指定位置开始截取...

    C语言程序设计(第2版)-2期 常见问题6-2 将字符串赋给字符数组.pdf

    总结来说,C语言中将字符串赋给字符数组需要遵循特定的规则,要么在定义时直接初始化,要么通过字符串拷贝函数如strcpy进行安全的复制。正确处理字符串与字符数组的关系对于编写安全、可靠的C语言程序至关重要。

    PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)

    总结来说,`authcode`函数提供了一种结合了时间限制的字符串加密机制,可以用于保护数据的安全,防止未经授权的访问。然而,这种自定义的加密方法虽然在一定程度上增加了安全性,但并不意味着绝对安全,因为它依赖于...

    PHP程序设计-3期(KC016) 2.8.3字符串截取习题.doc

    总结起来,`substr()`和`mb_substr()`是PHP中用于截取字符串的函数。`substr()`适用于ASCII字符串,而`mb_substr()`更适合处理多字节编码的字符串,如UTF-8。两者都可以接受负数的`start`参数,但`length`参数的负数...

    PHP程序设计-3期(KC016) 2.8.4字符串分割 常见问题.docx

    总结来说,在处理PHP字符串分割时,理解`explode()`函数的工作原理至关重要。对于连续无分隔符的字符串,可以借助虚拟分隔符进行处理;在区分大小写的情况下,需先转换字符串的大小写;而分割后的结果是数组,需要...

    数据结构-3期(KC002) 字符串的结构分析与应用.docx

    总结来说,理解和掌握字符串的结构和操作是计算机科学基础中的重要一环,它不仅涉及到基本的数据操作,还在文本处理、文本分析等实际应用中起到关键作用。通过学习和实践,可以提升编程能力和解决实际问题的能力。

    PHP程序设计-3期(KC016) 2.8.5字符串比较 拓展知识.doc

    本章我们将深入探讨两个关键的字符串比较函数:`strcmp`和`strcasecmp`,以及一个自然排序比较函数`strnatcmp`。 一、`strcmp`函数 `strcmp`函数是PHP中的标准字符串比较函数,它接收两个参数,返回这两个字符串的...

    PHP程序设计-3期(KC016) 2.8.8字符串输出习题.doc

    总结来说,这些习题涵盖了PHP中的基本字符串操作、数组处理以及常见的输出函数`echo`、`print`、`print_r`和`var_dump`的用法。掌握这些知识点对于理解和编写PHP代码至关重要。在实际编程中,我们需要灵活运用这些...

    Python程序设计-3期(KC017) D42.pdf

    总结来说,Python中的字符串函数丰富多样,提供了对字符串的灵活操作。理解并熟练运用这些函数,能够大大提高我们的编程效率和代码质量。在实际编程中,根据具体需求选择合适的字符串函数,能够有效地处理各种字符串...

    ORACLE函数大全与整理

    2. 字符串函数:如UPPER()、LOWER()用于大小写转换,INSTR()用于查找子字符串位置,SUBSTR()用于截取子字符串。 3. 日期时间函数:如SYSDATE获取当前系统日期,ADD_MONTHS()添加月份,TO_CHAR()和TO_DATE()用于日期...

    数据结构-3期(KC002) 数据结构教学单元设计四.doc

    在C语言中,处理字符串通常涉及字符串函数,如strlen()计算长度,strcpy()复制字符串,strcat()连接字符串,strcmp()比较字符串等。理解这些函数的使用规则和注意事项是编程的关键。 五、教学过程设计 教学过程分为...

    VB函数集.text

    InStr 函数用于查找一个字符串在另一个字符串中的起始位置。 **函数格式:** ```vb InStr([start,] string1, string2[, compare]) ``` 其中: - `start`(可选):指定搜索开始的位置,默认为 1。 - `string1`:被...

    SQL 单行函数介绍

    字符函数用于处理字符串数据,常见的字符函数包括: - **LOWER()**: 将字符串转换为小写。 - **UPPER()**: 将字符串转换为大写。 - **INITCAP()**: 将字符串首字母大写。 - **CONCAT()**: 连接两个或多个字符串。 - ...

    几个高效,简洁的字符处理函数

    **功能说明**:此函数用于判断输入的字符串是否符合“yyyy-mm-dd hh:mm:ss”这一日期时间格式,并且还要确保日期本身是合法的(例如,二月份天数不会超过29天,且要考虑闰年情况)。 **代码实现**: ```javascript...

    PHP程序设计-3期(KC016) PHP高级应用-过滤函数2-拓展知识.doc

    在例子2中,我们使用了内置的`strtoupper`函数,这是一个将字符串转换为大写形式的函数。同样,我们将`strtoupper`作为`FILTER_CALLBACK`的选项,`filter_var`会调用这个函数将输入的字符串转换为大写。因此,原始...

Global site tag (gtag.js) - Google Analytics