php-字符串函数

本文详细介绍了PHP中的多种字符串操作函数,包括字符串转义、分割、填充、比较等实用技巧,并通过示例展示了如何使用这些函数解决实际问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • addcslashes :以c语言风格使用反斜线转义字符串中的字符

    addcslashes ( string $str , string $charlist ) : string;
    addcslashes("hello,word","a..z");
    // 输出结果:\h\e\l\l\o,\w\o\r\d
  • addslashes:使用反斜线引用字符串

    addslashes ( string $str ) : string;
    addslashes("'\daaa");
    // 输出结果:\'\\daaa
    // \n,\t..好像不能使用反斜线,这些内置的
  • bin2hex:把包含数据的二进制字符串转换为十六进制值

    bin2hex ( string $str ) : string;
    echo bin2hex("110110");
    // 输出结果:313130313130
  • chop:rtrim()的别名

  • chr:返回指定的字符串

    chr ( int $ascii ) : string;
    chr(66);
    // 输出结果:B,也就是B对象ascii是66
  • shunk_split:将字符串分割为小块

    chunk_split ( string $body [, int $chunklen = 76 [, string $end = "\r\n" ]] ) : string;
    /*
    body:需要进行分割的字符串
    chunklen:分割的尺寸
    end:行尾序列符号
    */
    chunk_split("iiasdasd-asdas-sadasda",5,'-');
    // 输出结果为:iiasd-asd-a-sdas--sadas-da-
    // 上面代码的意思是,将字符串以5个字符分割,以'-'作为分割符
  • count_chars:返回字符串所用字符的信息

    count_chars ( string $string [, int $mode = 0 ] ) : mixed;
    // 不会
  • crypt:单向字符串散列

    crypt ( string $str [, string $salt ] ) : string;
    // 可以用在明文密码进行加密
    crypt("password is this","zhuyu");
    // 输出结果为:zhRH2Qd3I15SE
  • echo:输出一个或者多个字符串

    echo ( string $arg1 [, string $... ] ) : void;
    echo "hello,zhuyu";
    // 输出结果为 hello,zhuyu
    // echo他不是一个函数,所以不用加括号,它只是一种语法结构
  • explode:使用一个字符串分割另一个字符串,返回值为数组

    explode ( string $delimiter , string $string [, int $limit ] ) : array;
    var_dump( explode("aa","bbaadasdasdaaddssddaadds"));
    // 输出结果是一个数组:["bb","dasdasd","ddssdd", "dds"]
    var_dump( explode("aa","bbaadasdasdaaddssddaadds",2));
    // 输出结果是长度为2的数组,也就是说只切分了一次
    // ["bb","dasdasdddssdddds"]
  • fprintf:将格式化后的字符串写入到流

    fprintf ( resource $handle , string $format [, mixed $args [, mixed $... ]] ) : int
  • implode(join):将一个一维数组的值转换为字符串

    // 传参数方式一:
    implode ( string $glue , array $pieces ) : string;
    // 传参数方式二:
    implode ( array $pieces ) : string;
    $arr = ["1","3"]
    implode($arr);
    implode("",$arr);
    // 上面的输出结果都是一致的:13,这是字符串
    implode("--",$arr);
    // 输出结果为:1--3,
  • lcfirst:是第一个字符串的第一个字符小写

    lcfirst ( string $str ) : string;
    $strr = "Hello,zhuyu";
    echo lcfirts($strr);
    // 输出结果为:hello,zhuyu
  • lvenstein:计算两个字符串之间的编辑距离

    levenshtein ( string $str1 , string $str2 ) : int;
    levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del ) : int;
    
    $str1 = "abcdeffff";
    $str2 = "abcdef";
    echo levenshtein($str1,$str2);
    // 输出结果为:3
  • ltrim:去掉字符串左边的空格

    // $character_mask可以指定要去掉的字符串,默认为空
    ltrim ( string $str [, string $character_mask ] ) : string;
    
    echo ltrim("   hello,zhuyu");
    // 输出结果为:hello,zhuyu
    echo ltrim("xixihello,zhuyu","xixi");
    // 输出结果为:hello,zhuyu
  • mds_file:计算指定文件的MD5散列值

    // $filename文件名的字符串,$raw_output为True,16位二进制格式返回
    md5_file ( string $filename [, bool $raw_output = FALSE ] ) : string;
    
    echo md5_file("php02.php");
    // 输出结果为:8300c4e13e1ce743210690bd3bc62a0b
  • md5:计算字符串的md5散列值

    md5 ( string $str [, bool $raw_output = FALSE ] ) : string;
    
    echo md5("zhuyu");
    // 输出:853268ca98b99bd952c2a9d4edfde699
  • metaphone:

    metaphone ( string $str [, int $phonemes = 0 ] ) : string;
    // 还不够了解它
  • money_format:将数字格式化为货币字符串

    money_format ( string $format , float $number ) : string;
  • nl2br:在字符串所有新行之前插入html换行标记

    nl2br ( string $string [, bool $is_xhtml = TRUE ] ) : string;
    echo nl2br("foo isn't\n bar");
    /*输出:
    foo isn't<br />
    bar
    */
  • number_format:以千位分割方式格式化一个数字

    number_format ( float $number [, int $decimals = 0 ] ) : string;
    number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," ) : string;
    /* number_format这个函数可以接受1,2或者4个参数,但不能是三个
    number:你要格式化的数字
    decimals:要保留的小数位数
    dec_point:指定小数点显示的字符
    thousands_sep:指定千位分隔符显示的字符
    */
    echo number_format(12345.67);
    // 输出:1,2346
  • ord:转换字符串第一个字节为0-255之间的值

    ord ( string $string ) : int;
    echo ord("a");
    // 输出:97,如果是abc字符串呢?结果还是97
  • parse_str:将字符串解析成多个变量

    parse_str ( string $encoded_string [, array &$result ] ) : void;
    parse_str("abc=12&zxc=-15sdasd",$aa);
    var_dump($aa) ;
    /*输出:
    array(2) {
      ["abc"]=>
      string(2) "12"
      ["zxc"]=>
      string(8) "-15sdasd"
    }
    */
    // 很明显,是按照等号区分变量,&区分多个变量
  • print:输出字符串,和echo差不多,返回值为1

  • printf:输出格式化字符串

  • quteemeta:转移元字符集

    quotemeta ( string $str ) : string;
    /*
    在下面这些特殊字符前加 反斜线(\) 转义后的字符串:. \ + * ? [ ^ ] ( $ )
    */
    echo quotemeta("/n\sad`sda");
    // 输出:/n\\sad`sda
  • rtrim:删除字符串右端的空白字符

    rtrim ( string $str [, string $character_mask ] ) : string;
    // 和ltrim差不多,一个删除左边,一个删除右边
  • setlocale:设置地区信息

    setlocale ( int $category , string $locale [, string $... ] ) : string;
    setlocale ( int $category , array $locale ) : string
  • sha1_file:计算文件的sha1散列值

    sha1_file ( string $filename [, bool $raw_output = FALSE ] ) : string;
    // 和md5_file用法差不多
  • sha1:计算字符串的sha1散列值

    sha1 ( string $str [, bool $raw_output = false ] ) : string;
    // 也是和md5()差不多
  • similar_text:计算两个字符串的相似度

    similar_text ( string $first , string $second [, float &$percent ] ) : int;
    // 返回值是int,返回两个字符串中匹配字符的数目
    echo similar_text("aaa","aab");
    // 输出:2
  • soundex

    soundex ( string $str ) : string;
    echo soundex("c");
    // 输出:C000
    // 说实话还是不太懂,和之前matephone差不多
  • sprintf:返回一个格式化的字符串

    sprintf ( string $format [, mixed $... ] ) : string;
    // 在python中%s,%d是类似
    $a = "我是%s,今年%s";
    echo sprintf($a,"朱宇",22);
    // 输出:我是朱宇,今年22
  • str_getcsv:解析csv字符串为一个数组

    str_getcsv ( string $input [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\\" ]]] ) : array
  • str_irplace:替换字符串(可以忽略大小写)

    str_ireplace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed;
  • str_pad:使用另一个字符串填充字符串指定长度

    str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] ) : string;
    echo str_pad("zhuyu",10,"-");
    // 输出:zhuyu-----
  • str_repeat:重复一个字符串

    str_repeat ( string $input , int $multiplier ) : string;
    // $multiplier:指重复的次数
    echo str_repeat("zhuyu",3);
    // 输出:zhuyuzhuyuzhuyu
  • str_replace:子字符串替换

    str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed;
    // 这个是区分大小写的
    echo str_replace("sb","帅比","zhuyusb");
    // 输出:zhuyu帅比
  • str_shuffle:随机打乱一个字符串

    str_shuffle ( string $str ) : string;
    echo str_shuffle("abcdefghi");
    // 输出:adifcgbeh  结果不是固定的,但是字符串还是那几个
  • str_split:将字符串切分为数组

    str_split ( string $string [, int $split_length = 1 ] ) : array;
    var_dump(str_split("adasdas",2));
    // $split_length:代表切分的每一段的长度
    /* 输出:
    array(4) {
      [0]=>
      string(2) "ad"
      [1]=>
      string(2) "as"
      [2]=>
      string(2) "da"
      [3]=>
      string(1) "s"
    }
    */
  • str_word_count:返回字符串中单词的使用情况

    str_word_count ( string $string [, int $format = 0 [, string $charlist ]] ) : mixed;
    var_dump(str_word_count("and hello wordn ame password",1));
    /* 输出
    array(5) {
      [0]=>
      string(3) "and"
      [1]=>
      string(5) "hello"
      [2]=>
      string(5) "wordn"
      [3]=>
      string(3) "ame"
      [4]=>
      string(8) "password"
    }*/
    // 看上面的结果,怎么说了,他应该是以空格作为分割,只要空格了,就是一个单词
  • strcasecmp:二进制安全比较字符串(不区分大小写)

    strcasecmp ( string $str1 , string $str2 ) : int;
    echo strcasecmp("zhuyu","zhuyu")."\n";
    echo strcasecmp("zhuyu11","zhuyu")."\n";
    echo strcasecmp("zhuyu","zhuyu11")."\n";
    /* 输出:
    0
    2
    -2
    str1 == str2 就返回0,小于就返回-n(n是相差字符的个数),大于就返回n(n是相差字符的个数),
    */
  • strchr:别名为strstr()

  • strcmp:二进制安全字符串比较(和strcasecmp差不多)

  • strcspn:获取不匹配遮罩的其实子字符串的长度

    strcspn ( string $str1 , string $str2 [, int $start [, int $length ]] ) : int;
    echo strcspn("11111aaa","abbb");
    /*
    输出:5
    大概意思是:str2的第一个字符,在str1的下标位置,如果不在的话,就返回str1中下标的下一位。
    */
  • strip_tags:从字符串中去除html和php标记

    strip_tags ( string $str [, string $allowable_tags ] ) : string;
    echo strip_tags("<html><body>我是字符串</body></html>");
    // 输出:我是字符串
  • stripcslashes:反引用一个使用addcslashes()转义的字符串

  • stripos:查找字符串首次出现的位置(不区分大小写)

    stripos (string $haystack , string $needle [, int $offset = 0 ] ) :int;
    echo stripos("zhuchuyu","c");
    // 输出:3
  • strlen(len):获取字符串的长度

    strlen ( string $string ) : int;
    echo strlen("zhuyu");
    // 输出:5
  • strpbrk:在字符串中查找一组字符的任何一个字符

    strpbrk ( string $haystack , string $char_list ) : string;
    echo strpbrk("zhuchunyu",'yu');
    /* 
    输出为:uchunyu,看文档说'u'先匹配,那么应该是从后开始配的,如果匹配不出,就继续按照下一位(这里就是y)的字符匹配
    */
  • strtok:标记分割字符串

    strtok ( string $str , string $token ) : string;
    strtok ( string $token ) : string;

转载于:https://www.cnblogs.com/zhuchunyu/p/10648659.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值