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 相关文章推荐
文件上传的实现
Oct 09 PHP
php 文件上传代码(限制jpg文件)
Jan 05 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
PHP 关于访问控制的和运算符优先级介绍
Jul 08 PHP
一个简单的PHP验证码实现代码
May 10 PHP
js代码实现微博导航栏
Jul 30 PHP
PHP实现数组array转换成xml的方法
Jul 19 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP hebrev()函数用法讲解
Feb 21 PHP
PHP DB 数据库连接类定义与用法示例
Mar 11 PHP
在TP5数据库中四个字段实现无限分类的示例
Oct 18 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计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
2017/04/11 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
详解Python中的循环语句的用法
2015/04/09 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
生产厂长岗位职责
2014/02/21 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
设计师求职信
2014/07/01 职场文书
搬迁通知
2015/04/20 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
监护人证明
2015/06/19 职场文书
单位车辆管理制度
2015/08/05 职场文书
网吧管理制度范本
2015/08/05 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server
Python pyecharts绘制条形图详解
2022/04/02 Python
Python实现日志实时监测的示例详解
2022/04/06 Python