php字符串函数 str类常见用法示例


Posted in PHP onMay 15, 2020

本文实例讲述了php字符串函数 str类常见用法。分享给大家供大家参考,具体如下:

str_split(string, leg);//将一个字符 串转换为数组,参数1:要被转换的字符串,参数2:每 段长度, 返回一个转换后的数组

例:

<?php
$str = "Hello Friend";
$arr = str_split($str, 3);

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

ord(string);//返回字符的ASCII码值,,,返回字符串string第一个字符的ASCII码值

例:$test = 'abc';

$offset = 0;
while ($offset >= 0) {
  echo $offset.": ".ordutf8($text, $offset)."\n";
 // 97,98,99

sizeof();//count()的别名

end();//将数组的内部指针指向最后一个单元

<?php
$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry
?>

strlen($string);//获取字符串长度

例:

echo strlen('hai');//3

sprintf(format, arg1, arg2, arg++);//把格式化的字符串写入变量中。

  • format:规定字符串以及如何格式化其中的变量
  • arg1:规定插到 format 字符串中第一个 % 符号处的参数。
  • arg2:规定插到 format 字符串中第二个 % 符号处的参数。

例:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2
// 注释:格式值 "%%" 返回百分号
echo sprintf("%%b = %b",$num1)."<br>"; // 二进制数
echo sprintf("%%c = %c",$char)."<br>"; // ASCII 字符
echo sprintf("%%d = %d",$num1)."<br>"; // 带符号的十进制数
echo sprintf("%%d = %d",$num2)."<br>"; // 带符号的十进制数
echo sprintf("%%e = %e",$num1)."<br>"; // 科学计数法(小写)
echo sprintf("%%E = %E",$num1)."<br>"; // 科学计数法(大学)
echo sprintf("%%u = %u",$num1)."<br>"; // 不带符号的十进制数(正)
echo sprintf("%%u = %u",$num2)."<br>"; // 不带符号的十进制数(负)
echo sprintf("%%f = %f",$num1)."<br>"; // 浮点数(视本地设置)
echo sprintf("%%F = %F",$num1)."<br>"; // 浮点数(不视本地设置)
echo sprintf("%%g = %g",$num1)."<br>"; // 短于 %e 和 %f
echo sprintf("%%G = %G",$num1)."<br>"; // 短于 %E 和 %f
echo sprintf("%%o = %o",$num1)."<br>"; // 八进制数
echo sprintf("%%s = %s",$num1)."<br>"; // 字符串
echo sprintf("%%x = %x",$num1)."<br>"; // 十六进制数(小写)
echo sprintf("%%X = %X",$num1)."<br>"; // 十六进制数(大写)
echo sprintf("%%+d = %+d",$num1)."<br>"; // 符号说明符(正)
echo sprintf("%%+d = %+d",$num2)."<br>"; // 符号说明符(负)
?>

返回结果:

%b = 111010110111100110100010101
%c = 2
%d = 123456789
%d = -123456789
%e = 1.234568e+8
%E = 1.234568E+8
%u = 123456789
%u = 18446744073586094827
%f = 123456789.000000
%F = 123456789.000000
%g = 1.23457e+8
%G = 1.23457E+8
%o = 726746425
%s = 123456789
%x = 75bcd15
%X = 75BCD15
%+d = +123456789
%+d = -123456789

substr_replace(mixed $string , mixed $replacement , mixed $start [, mixed $length ]);// 替换字符串的子串

  • $string:输入的字符串,
  • $replacement:用来替换的字符串,
  • $start:为正数时,从$string的start位置开始,为负数时,从$string的末尾开始,,,,
  • $lenght:为正数时,表示被替换的子字符串的长度。为负数时,表示待替换的子字符串结尾处距离string末端的字符个数。
<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";
 
/* 这两个例子使用 "bob" 替换整个 $var。*/
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";
 
/* 将 "bob" 插入到 $var 的开头处。*/
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";
 
/* 下面两个例子使用 "bob" 替换 $var 中的 "MNRPQR"。*/
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";
 
/* 从 $var 中删除 "MNRPQR"。*/
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>

strpos();//查找字符串首次出现的位置。

1、

<?php
// 忽视位置偏移量之前的字符进行查找
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0
?>

2、

<?php
$mystring = 'abc';
$findme  = 'a';
$pos = strpos($mystring, $findme);
 
// 使用 !== 操作符。使用 != 不能像我们期待的那样工作,
// 因为 'a' 的位置是 0。语句 (0 != false) 的结果是 false。
if ($pos !== false) {
   echo "The string '$findme' was found in the string '$mystring'";
     echo " and exists at position $pos";
} else {
   echo "The string '$findme' was not found in the string '$mystring'";
}
?>

3、

<?php
$mystring = 'abc';
$findme  = 'a';
$pos = strpos($mystring, $findme);
 
// 注意这里使用的是 ===。简单的 == 不能像我们期待的那样工作,
// 因为 '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";
}
?>

preg_split($pet, $str);//通过一个正则表达式分隔字符串;

$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);

输出:

array(3) { 
[0]=>  string(9) "hypertext" 
[1]=>  string(8) "language" 
[2]=>  string(11) "programming"
}

explode($del, $str, $limit);//使用一个字符串分割另一个字符串

  • $del:分隔符   
  • $str :字符串   
  • $limit:如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素,如果 limit 是 0,则会被当做 1。
<?php
$str = 'one|two|three|four';
 
// 正数的 limit
print_r(explode('|', $str, 2));
 
// 负数的 limit(自 PHP 5.1 起)
print_r(explode('|', $str, -1));
?>

以上例程会输出:

Array
(
    [0] => one
    [1] => two|three|four
)
Array
(
    [0] => one
    [1] => two
    [2] => three
)

parse_str($str);//将字符串解析成多个变量

$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
 
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

strstr($string,$needle,$before_needle);//查找字符串的首次出现

  • string,输入字符串。
  • needle,如果 needle 不是一个字符串,那么它将被转化为整型并且作为字符的序号来使用。
  • before_needle,若为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。
<?php
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // 打印 @example.com
 
$user = strstr($email, '@', true); // 从 PHP 5.3.0 起
echo $user; // 打印 name
?>

substr($string,$start,$lenght);// 返回字符串的子串(返回字符串 string 由 start 和 length 参数指定的子字符串)

1、

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

2、

<?php
$rest = substr("abcdef", 0, -1); // 返回 "abcde"
$rest = substr("abcdef", 2, -1); // 返回 "cde"
$rest = substr("abcdef", 4, -4); // 返回 ""
$rest = substr("abcdef", -3, -1); // 返回 "de"
?>

3、

<?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
 
// 访问字符串中的单个字符
// 也可以使用中括号
$string = 'abcdef';
echo $string[0];         // a
echo $string[3];         // d
echo $string[strlen($string)-1]; // f
?>

strtr();//转换指定字符

string strtr ( string $str , string $from , string $to )

string strtr ( string $str , array $replace_pairs )

该函数返回 str 的一个副本,并将在 from 中指定的字符转换为 to 中相应的字符。 比如, $from[$n]中每次的出现都会被替换为 $to[$n],其中 $n 是两个参数都有效的位移(offset)。

如果 from 与 to 长度不相等,那么多余的字符部分将被忽略。 str 的长度将会和返回的值一样。

1、

使用两个参数的 strtr() 范例

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

以上例程会输出:

hello all, I said hi

2、

<?php
echo strtr("baab", "ab", "01"),"\n";
 
$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>

以上例程会输出:

1001
ba01

str_replace(mixed $search , mixed $replace , mixed $subject [, int &$count ]);//子字符串替换

该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果

<?php
// 赋值: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
 
// 赋值: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of 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");
 
$newphrase = str_replace($healthy, $yummy, $phrase);
 
// 赋值: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>
<?php
// 替换顺序
$str   = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order  = array("\r\n", "\n", "\r");
$replace = '<br />';
 
// 首先替换 \r\n 字符,因此它们不会被两次转换
$newstr = str_replace($order, $replace, $str);
 
// 输出 F ,因为 A 被 B 替换,B 又被 C 替换,以此类推...
// 由于从左到右依次替换,最终 E 被 F 替换
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
 
// 输出: apearpearle pear
// 由于上面提到的原因
$letters = array('a', 'p');
$fruit  = array('apple', 'pear');
$text  = 'a p';
$output = str_replace($letters, $fruit, $text);
echo $output;
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
实用函数3
Nov 08 PHP
php初始化对象和析构函数的简单实例
Mar 11 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
php微信开发之音乐回复功能
Jun 14 PHP
PHP的静态方法与普通方法用法实例分析
Sep 26 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
Feb 11 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 PHP
PHP数组array类常见操作示例
May 15 #PHP
php数值计算num类简单操作示例
May 15 #PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 #PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 #PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 #PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 #PHP
PHP程序员简单的开展服务治理架构操作详解(一)
May 14 #PHP
You might like
php笔记之:数据类型与常量的使用分析
2013/05/14 PHP
JSON两种结构之对象和数组的理解
2016/07/19 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
老生常谈ES6中的类
2017/07/31 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
简述JS控制台的使用
2018/07/15 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
2019/04/23 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
2020/07/21 Javascript
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
写给女朋友的道歉信
2014/01/12 职场文书
演讲稿开场白
2014/01/13 职场文书
银行类自荐信
2014/02/04 职场文书
2014公司年终工作总结
2014/12/19 职场文书
音乐研修感悟
2015/11/18 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书