zoukankan      html  css  js  c++  java
  • PHP经常使用的字符串函数&例子

    1.strstr(string $str,mixed $needle[, bool $before_needle = FALSE ])
    
    参数 
    
    $str  输入的字符串 
    
     $needle  查找的字符串,
    
    $before_needle 布尔值
    
    $str = 'abc@yui'
    echo strstr($str,'@'); //@yui
    //返回字符串$str从@(needle)到结尾部分
    echo PHP_EOL;
    echo strstr($str,'@',true); //abc
    //返回字符串$str中的@之前的部分
     
    
    2.string strrev(string $string)
    返回值:反转之后的字符串
    echo strrev('xp'); //px
     
    
    3.strlen(string $string);
    返回给定的字符串 string 的字节长度。
    utf-8编码格式的每个汉字是3个字节
    gbk编码格式的每个汉字是2个字节
    echo strlen('汉语');//6
    4.mb_strlen(string $str [, string $encoding = mb_internal_encoding() ])
    返回具有 encoding 编码的字符串 str 包含的字符数。多字节的字符被计为 1。。
    echo mb_strlen('你好','utf-8');//utf-8编码格式的页面,使用utf-8编码输出2,
    echo mb_strlen('你好','gbk'); //gbk编码格式的页面,使用gbk编码输出3
    5.strtolower() 返回转换后的小写字符串。
    $str = "Mary Had A Little Lamb and She LOVED It So";
    $str = strtolower($str);
    echo $str; // 打印 mary had a little lamb and she loved it so
    6.strtoupper()
    * 返回转换后的大写字符串
    echo strtoupper('i love you'); // I LOVE YOU
     
    
    7.ucwords(string $string)— 将字符串中每个单词的首字母转换为大写
    
    echo ucwords('hello world'); // Hello World
    $foo = 'hello world PHP!';
    echo ucwords($foo);  // Hello World PHP!  把字符串中的单词转大写
     
    
    8.string ucfirst ( string $str )
    
    将 str 的首字符(如果首字符是字母)转换为大写字母,并返回这个字符串。
    
    $foo='hello world';
    echo ucfirst($foo);  // Hello world!
     
    
     
    
    9.str_replace(mixed $search,mixed $replace,string $str)
    
     
    
    函数以其他字符替换字符串中的一些字符(区分大小写)。
    
     
    
    该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被replace 替换之后的结果。
    
     
    
    参数
    
    如果 search 和 replace 为数组,那么 str_replace() 将对 subject 做二者的映射替换。如果 replace 的值的个数少于 search 的个数,多余的替换将使用空字符串来进行
    
    。如果 search 是一个数组而 replace 是一个字符串,那么 search 中每个元素的替换将始终使用这个字符串。该转换不会改变大小写。
    
     
    
    如果 search 和 replace 都是数组,它们的值将会被依次处理。
    
     
    
    search
    
    查找的目标值,也就是 needle。一个数组可以指定多个目标。
    
     
    
    replace
    
    search 的替换值。一个数组可以被用来指定多重替换。
    
     
    
    subject
    
    执行替换的数组或者字符串。也就是 haystack。如果 subject 是一个数组,替换操作将遍历整个 subject,返回值也将是一个数组。
    
     
    
    count
    
    如果被指定,它的值将被设置为替换发生的次数。
    
     
    
    返回值
    
    该函数返回替换后的数组或者字符串。
    
    $str     = "Line 1
    Line 2
    Line 3
    Line 4
    ";
    $order   = array("
    ", "
    ", "
    ");
    $replace = '<br />';
    
    // 首先替换 
     字符,因此它们不会被两次转换
    echo $newstr = str_replace($order, $replace, $str);
    //Line 1<br />Line 2<br />Line 3<br />Line 4<br />
    
    // 赋值: <body text='black'>
    echo $bodytag = str_replace("%body%", "black", "<body text='%body%'>");
    
    //<body text='black'>
    // 赋值: Hll Wrld f PHP
    $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
    echo $onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
    
    // Hll Wrld f 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");
    
    echo $newphrase = str_replace($healthy, $yummy, $phrase);
    
    //You should eat pizza, beer, and ice cream every day
    // 赋值: 2
    $str = str_replace("ll", "", "good golly miss molly!", $count);
    echo $count; //3
     
    
    10. str_ireplace(mixed $search,mixed $replace,  $str);同str_replace类似,
    
    只不过是不区分大小写
    
     
    
    11.将特殊字符转换为 HTML 实体string  htmlspecialchars ( string $string
    
    [, int $flags = ENT_COMPAT| ENT_HTML401 [, string $encoding =
    
    ini_get("default_charset") [, bool $double_encode = TRUE ]]] );
    
    $new = htmlspecialchars("<a href='test'>Test</a>");
    echo $new; // &lt;a href='test'&gt;Test&lt;/a&gt;
     
    
     
    
    12.htmlspecialchars_decode(string $string) 把特殊实体转化成字符串
    
    echo PHP_EOL;
    echo htmlspecialchars_decode($new);  
    //<a href='test'>Test</a>
     
    
    13.trim — 去除字符串首尾处的空白字符(或者其他字符)
    
    string trim ( string $str [, string $character_mask = " 	
    
    x0B" ] )
    
     
    
    此函数返回字符串 str 去除首尾空白字符后的结果。如果不指定第二个参数,trim() 将去除这些字符:
    
    空白字符包括
    
    " " (ASCII 32 (0x20)),普通空格符。
    
    "	" (ASCII 9 (0x09)),制表符。
    
    "
    " (ASCII 10 (0x0A)),换行符。
    
    "
    " (ASCII 13 (0x0D)),回车符。
    
    "" (ASCII 0 (0x00)),空字节符。
    
    "x0B" (ASCII 11 (0x0B)),垂直制表符。
    
    $text   = "		These are a few words :) ...  ";
    $binary = "x09Example stringx0A";
    $hello  = "Hello World";
    var_dump($text, $binary, $hello);
    /*string(32) "            These are a few words :) ...  "
    string(16) "    Example string
    "
    string(11) "Hello World"*/
    
    print "
    ";
    
    $trimmed = trim($text);
    var_dump($trimmed);//string(28) "These are a few words :) ..."
    
    $trimmed = trim($text, " 	.");
    var_dump($trimmed);//string(24) "These are a few words :)"
    
    $trimmed = trim($hello, "Hdle");
    var_dump($trimmed); //string(5) "o Wor"
     
    
    14.strpos(string $str,mixed $need[, int $offset = 0 ]) — 查找字符串首次出现的位置,区分大小写。
    
    参数
    
    $str
    
    在该字符串中进行查找。
    
     
    
    $need
    
    如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值。
    
     
    
    $offset
    
    如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。如果是负数,搜索会从字符串结尾指定字符数开始。
    
     
    
    返回值
    
    返回 needle 存在于 $str 字符串起始的位置(独立于 offset)。同时注意字符串位置是从0开始,而不是从1开始的。
    
     
    
    如果没找到 needle,将返回 FALSE$mystring = 'abc';
    $findme   = 'a';
    $pos = strpos($mystring, $findme);
    
    // 例子1 注意这里使用的是 ===。简单的 == 不能像我们期待的那样工作,
    // 因为 '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";
    }
    
    // 例子2 忽视位置偏移量之前的字符进行查找
    $newstring = 'abcdef abcdef';
    $pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0
     
    
    15. stripos($str,'a’)*/;//同上 但是不区分大小写
    
    $foo = "0123456789a123456789b123456789c";
    
    // 从尾部第 5 个位置开始向左查找知道字符后输出此字符从左向右查找时所占的位置
    var_dump(stripos($foo, '7', -4));  
    // 结果: int(17)
    
    var_dump(stripos($foo, '7', 20));  // 从第 20 个位置开始查找
    // 结果: int(27)
    
    var_dump(stripos($foo, '7', 28));  // 结果: bool(false)
     
    
    16.strrpos($str,$char)      右边开始,字符出现的位置,区分大小写;
    
    strripos($str,$char)     右边开始,字符出现的位置,不区分大小写;
    
     
    
    17string substr ( string $string , int $start [, int $length ] )
    
    返回字符串 string 由 start 和 length 参数指定的子字符串。
    
     
    
    start 
    
    1)是非负数,从 0 开始计算.
    
    2)是负数,从 string 结尾处向前数第 start 个字符开始
    
    3)string 的长度小于 start,将返回 FALSE。
    
    $rest = substr("abcdef", -1);    // 返回 "f"
    $rest = substr("abcdef", -2);    // 返回 "ef"
    $rest = substr("abcdef", -3, 1); // 返回 "d"
    length
    
    1)正数的length,从 start 处开始最多包括 length 个字符
    
    2)负数的 length,那么 string 末尾处的 length 个字符将会被省略。
    
    如果 start 不在这段文本中,那么将返回 FALSE
    
    3) 0,FALSE 或 NULL 的 length,那么将返回一个空字符串。
    
    4)没有提供 length,返回的子字符串将从 start 位置开始直到字符串结尾
    
    $rest = substr("abcdef", 0, -1);  // 返回 "abcde"
    $rest = substr("abcdef", 2, -1);  // 返回 "cde"
    $rest = substr("abcdef", 4, -4);  // 返回 ""
    $rest = substr("abcdef", -3, -1); // 返回 "de"
     
    
    18 strrchr(string,char)
    
    函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾
    
    的所有字符。
    
     
    
    参数
    
    string 必需。规定要搜索的字符串。
    
    char 必需。规定要查找的字符。如果该参数是数字,则搜索匹配此数字的
    
    ASCII 值的字符。
    
    //搜索 "What" 在字符串中的位置,并返回从该位置到字符串结尾的所有字符:
    echo strrchr("Hello world! What a beautiful day!",What); 
    
    //以 "o" 的 ASCII 值搜索 "o" 在字符串中的位置,并返回从该位置到字符串结尾的所有字符:
    echo strrchr("Hello world!",101); 
     
    
    19 str_shuffle()随机地打乱字符串中的所有字符
    
    echo str_shuffle('hellow'); //lehowl
  • 相关阅读:
    BZOJ2705: [SDOI2012]Longge的问题 欧拉函数
    BZOJ3884: 上帝与集合的正确用法 拓展欧拉定理
    BZOJ1296: [SCOI2009]粉刷匠 DP
    BZOJ5293: [Bjoi2018]求和 树上差分
    BZOJ1398: Vijos1382寻找主人 Necklace 字符串最小表示法
    BZOJ5189: [Usaco2018 Jan]Cow at Large 贪心+LCA
    BZOJ2654: tree 二分答案+最小生成树
    BZOJ1304: [CQOI2009]叶子的染色 树形dp
    BZOJ1632: [Usaco2007 Feb]Lilypad Pond SPFA+最短路计数
    BZOJ1726: [Usaco2006 Nov]Roadblocks第二短路 K短路
  • 原文地址:https://www.cnblogs.com/zjj1990/p/14451352.html
Copyright © 2011-2022 走看看