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 相关文章推荐
十天学会php之第五天
Oct 09 PHP
如何使用脚本模仿登陆过程
Nov 22 PHP
PHP静态新闻列表自动生成代码
Jun 14 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
PHP中的string类型使用说明
Jul 27 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 PHP
浅析PHP中Collection 类的设计
Jun 21 PHP
php curl模拟post提交数据示例
Dec 31 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
May 04 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 PHP
php cookie工作原理与实例详解
Jul 18 PHP
CodeIgniter整合Smarty的方法详解
Aug 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中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
python中sleep函数用法实例分析
2015/04/29 Python
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
python实现猜拳小游戏
2020/04/05 Python
python框架django项目部署相关知识详解
2019/11/04 Python
Python进程池Pool应用实例分析
2019/11/27 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
python字典的值可以修改吗
2020/06/29 Python
Python configparser模块应用过程解析
2020/08/14 Python
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
乡镇信息公开实施方案
2014/03/23 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
委托收款证明
2015/06/23 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技