美文网首页
PHP中字符串函数库常用函数解析 -- PHP 学习 (十一)

PHP中字符串函数库常用函数解析 -- PHP 学习 (十一)

作者: 无故下架内容so账号已弃用 | 来源:发表于2019-05-01 08:16 被阅读0次

常用字符串函数分类:

  • 字符串长度, 字符串查找, 字符串大小写转换, 字符串截取, 字符串 ASCII, 字符串加密, 比较, 拆分, 合并, 格式化字符串, 其他常用

php 手册字符串函数地址:

https://www.php.net/manual/zh/ref.strings.php

乍看一眼, 哇塞, 一箩筐函数...

部分常用函数讲解:

  • is_string(): 检测变量是否是字符串

is_string($var)

如果 $var 是字符串类型返回 true, 否则返回 false

  • strlen(): 获取字符串长度

strlen($str)

返回给定的字符串 $str 的长度

特别注明: strlen 编码 gb2312 下, 一个汉字返回的是 2 个字节长度, utf-8 下一个汉字返回的是 3 个字节长度, 要想计算字符的长度, 需要用 mb_strlen: 多字节的字符被计为 1

  • strtolower(): 将字符串转化为小写

strtolower($str)

将 $str 中所有的字母字符转换为小写并返回

  • strtoupper(): 将字符串转化为大写

strtoupper($str)

将 $str 中所有的字母字符转换为大写并返回。

  • ucfirst(): 将字符串的首字母转换为大写

ucfirst ( string $str )

将 str 的首字符(如果首字符是字母)转换为大写字母,并返回这个字符串

  • ucwords(): 将字符串中每个单词的首字母转换为大写

ucwords ( string $str [, string $delimiters = " \t\r\n\f\v" ] )

  1. 将 $str 中每个单词的首字符(如果首字符是字母)转换为大写字母,并返回这个字符串。

  2. 这里单词的定义是紧跟在 $delimiters 参数之后的子字符串。

  3. $delimiters 单词分割字符, 默认:空格符、制表符、换行符、回车符、水平线以及竖线

<?php
header('content-type: text/html;charset=utf-8');

// is_string, strlen, strtoupper, strtolower, ucfirst, ucwords

$name = 'guoyou.li';
$age = 24;
var_dump(is_string($name)); // => bool(true)
echo '<br />';
var_dump(is_string($age)); // => bool(false)
echo '<br />';
echo strlen($name); // => 9
echo '<br />';
echo strtoupper($name); // => GUOYOU.LI
echo '<br />';
$str = 'PHP';
echo strtolower($str); // => php
echo '<br />';
echo ucfirst($name); // => Guoyou.li
echo '<br />';
$name = 'li guo you';
echo ucwords($name); // => Li Guo You
echo '<br />';
$name = 'li.guo.you,hello';
echo ucwords($name, '.,'); // => Li Guo You
  • ord(): 转换字符串第一个字节为 0-255 之间的值

ord($str)

解析$str 二进制值第一个字节为 0 到 255 范围的无符号整型类型

该函数是 chr() 的互补函数

  • chr(): 返回指定的字符

chr ( int $ascii ) : string

返回相对应与 ascii 所指定的单个字符

此函数与 ord() 是互补的

  • substr(): 返回字符串的子串

substr ( string $string , int $start [, int $length ] ) : string

  1. 返回字符串 $string 由 $start 和 $length 参数指定的子字符串。

  2. 如果 $start 是非负数,返回的字符串将从 $string 的 $start 位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。

  3. 如果 $start 是负数,返回的字符串将从 $string 结尾处向前数第 $start 个字符开始。

  4. 如果 $string 的长度小于 $start,将返回 FALSE。

  • strcmp(): 二进制安全字符串比较

strcmp ( string $str1 , string $str2 ) : int

如果 $str1 小于 $str2 返回 < 0; 如果 $str1 大于 $str2 返回 > 0;如果两者相等,返回 0。注意该比较区分大小写

  • strcasecmp(): 二进制安全比较字符串(不区分大小写)

strcasecmp ( string $str1 , string $str2 ) : int

和 strcmp 一样的功能, 该比较区分大小写

  • strpos(): 查找字符串首次出现的位置

**strpos** ( string $haystack , $needle [, int $offset = 0 ] ) : int

  1. 返回 $needle 在 $haystack 中首次出现的数字位置。

  2. $haystack : 在该字符串中进行查找。

  3. 如果 $needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值。

  4. 如果提供了 $offset 参数,搜索会从字符串该字符数的起始位置开始统计。 如果是负数,搜索会从字符串结尾指定字符数开始。

  5. 返回 $needle 存在于 $haystack 字符串起始的位置(独立于 $offset)。同时注意字符串位置是从0开始,而不是从1开始的。
    如果没找到 $needle,将返回 FALSE。

  • stripos()

和上面的 strpos 一样的功能, 此函数不区分大小写

  • strrpos(): 计算指定字符串在目标字符串中最后一次出现的位置

用法和 strpos 类似,

  • strtipos(): 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)

strrpos 类似

<?php
header('content-type: text/html;charset=utf-8');

// ord, chr, substr, strcmp, strcasecmp, strpos, stripos, strrpos, strripos

echo ord('a'); // => 97
echo '<br />';
echo ord('A'); // => 65

echo '<br />';

echo chr('98'); // => b

echo '<br />';

$name = 'guoyou.li';
echo substr($name, 3, 3); // => you
echo '<br />';
echo substr($name, -2); // => li
echo '<br />';
var_dump(substr($name, 10)); // => bool(false)

echo '<br />';

echo strcmp('a', 'b'); // => -1

echo '<br />';

echo strcmp('F', 'a'); // => -1

echo '<br />';

echo strcasecmp('F', 'a'); // => 5

echo '<br />';

echo strpos('GUOyou.li', 'u'); // => 5
echo '<br />';
echo stripos('GUOyou.li', 'u'); // => 1
echo '<br />';
echo strpos('guoyou.li', 'o', 3); // => 4
echo '<br />';
echo strrpos('li.guoyou.LI', 'i'); // => 1
echo '<br />';
echo strripos('li.guoyou.LI', 'i'); // => 11

  • strip_tags(): 从字符串中从字符串中去除 HTML 和 PHP 标记

strip_tags ( string $str [, string $allowable_tags ] ) : string

  1. 该函数尝试返回给定的字符串 $str 去除空字符、HTML 和 PHP 标记后的结果。

  2. 使用可选的第二个参数指定不被去除的字符列表。

  • trim(): 去除字符串首尾处的空白字符(或者其他字符)

trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] ) : string

此函数返回字符串 $str 去除首尾空白字符后的结果。如果不指定第二个参数,trim() 将去除这些字符:

  1. " " (ASCII 32 (0x20)),普通空格符。
  2. "\t" (ASCII 9 (0x09)),制表符。
  3. "\n" (ASCII 10 (0x0A)),换行符。
  4. "\r" (ASCII 13 (0x0D)),回车符。
  5. "\0" (ASCII 0 (0x00)),空字节符。
  6. "\x0B" (ASCII 11 (0x0B)),垂直制表符。

可选参数,过滤字符也可由 $character_mask 参数指定

  • ltrim(): 删除字符串末端的空白字符(或者其他字符)符(或其他字符)

语法同上 trim()

  • rtrim()

语法同上 trim()

  • join():

join 是 implode 的别名

作用: 将一个一维数组的值转化为字符串

语法: implode ( string $glue , array $pieces ) : string

用 $glue 将一维数组的值连接为一个字符串。

  • md5(): 计算字符串的 MD5 散列值

md5 ( string $str [, bool $raw_output = FALSE ] ) : string

  1. 返回值: 以 32 字符十六进制数字形式返回散列值。

  2. 如果可选的 $raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。

  3. 可以用来做密码加密处理

  • sha1(): 计算字符串的 sha1 散列值

sha1 ( string $str [, bool $raw_output = false ] ) : string

  1. 如果可选的 raw_output 参数被设置为 TRUE, 那么 sha1 摘要将以 20 字符长度的原始格式返回, 否则返回值是一个 40 字符长度的十六进制数字。

  2. 返回 sha1 散列值字符串。

  • empty(): 检查一个变量是否为空
  1. 判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在。如果变量不存在的话,empty() 并不会产生警告。

  2. 以下的东西被认为是空的:

  • "" (空字符串)
  • 0 (作为整数的0)
  • 0.0 (作为浮点数的0)
  • "0" (作为字符串的0)
  • NULL
  • FALSE
  • array() (一个空数组)
  • $var; (一个声明了,但是没有值的变量)
<?php
header('content-type: text/html;charset=utf-8');

// strip_tags, trim, ltrim, rtrim, join(implode), md5, sha1, empty

$html = '<span>2</span><span>3</span><span>4</span><a href="index.php">走起</a>';
echo strip_tags($html); // => 234走起
echo '<br />';
echo strip_tags($html, '<a>'); // => 234<a href="index.php">走起</a>

echo '<br />';
$str = ' guoyou.li ';
echo 'a'.trim($str).'a'; // => aguoyou.lia
echo '<br />';
echo 'a'.ltrim($str).'a'; // => aguoyou.li a
echo '<br />';
echo 'a'.rtrim($str).'a'; // => a guoyou.lia

echo '<br />';
$str = 'guoyououg';
echo trim($str, 'g'); // => uoyouou

echo '<br />';
$arr = array(1,2,3);
echo implode('-', $arr); // => 1-2-3
echo '<br />';
echo join('_', $arr); // => 1_2_3

echo '<br />';
$pwd = '1234345fd';
echo md5($pwd); // => 49654110fb9186395e75ab99d834e0e2
echo '<br />';
echo sha1($pwd); // => 1366643064ca7054b6a6fc0dc0daaa3bc8bd66c9
echo '<br />';
echo md5(sha1(md5($pwd))); // => 30b5b0a974259afbfb67d398a025ac15

echo '<br />';
var_dump(empty('12321')); // => bool(false)
echo '<br />';
var_dump(empty('')); // => bool(bool(true)
echo '<br />';
var_dump(empty('0')); // => bool(bool(true)
echo '<br />';
var_dump(empty(0)); // => bool(bool(true)
echo '<br />';
var_dump(empty(0.0)); // => bool(bool(true)
echo '<br />';
var_dump(empty(0.00)); // => bool(bool(true)
echo '<br />';
var_dump(empty('0.0')); // => bool(bool(false)
echo '<br />';
var_dump(empty(NULL)); // => bool(bool(true)
echo '<br />';
var_dump(empty(true)); // => bool(bool(false)
echo '<br />';
var_dump(empty(false)); // => bool(bool(true)
echo '<br />';
$arrs = array();
var_dump(empty($arrs)); // => bool(bool(true)
echo '<br />';
$empty;
var_dump(empty($empty)); // => bool(bool(true)

参考资料:
https://www.imooc.com/learn/726
https://www.php.net/manual/zh/ref.strings.php

相关文章

网友评论

      本文标题:PHP中字符串函数库常用函数解析 -- PHP 学习 (十一)

      本文链接:https://www.haomeiwen.com/subject/opksnqtx.html