首页 > 后端开发 > 正文

php分割数组函数 split和explode的区别(同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了)

2024-09-23 13:06:36 | 我爱编程网

今天我爱编程网小编整理了php分割数组函数 split和explode的区别(同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了)相关内容,希望能帮助到大家,一起来看下吧。

本文目录一览:

php分割数组函数 split和explode的区别(同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了)

php分割数组函数 split和explode的区别

一句话总结这三个分割函数的
explode用字符串分割,split和 preg_split用正则分割.
效率方面: explode最快, 其次preg_split最后split.
split()函数
用正则表达式来把字符串拆分并返回数组,如果出错则返回false。
用法: split(string $pattern,string $string [,int $limit])
pattern:相应的正则表达式
string:字符串
limit:指定字符串分割的最大数目
例子1:
<?php
$expression="3*5+12/6-15";
$pattern="/";
$limit=3;
$parts=split($pattern,$expression,$limit);
print_r($parts);
?>
结果:

Array
(
[0] => 3*5+12
[1] => 6-15
)
例子2:

<?php
$expression="3*5+12/6-15";
$pattern="[+/]";
$limit=3;
$parts=split($pattern,$expression,$limit);
print_r($parts);
?>
结果:

Array
(
[0] => 3*5
[1] => 12
[2] => 6-15
)
preg_split() 函数
用 Perl 兼容正则表达式语法,通常比 split() 更快。
preg_split:用正则表达式分隔字符串

4.3.0版本:增加了标记PREG_SPLIT_OFFSET_CAPTURE.
4.0.5版本:增加了标记PREG_SPLIT_DELIM_CAPTURE.

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>
以上程序输出样式:

Array
(
[0] => s
[1] => t
[2] => r
[3] => i
[4] => n
[5] => g
)

<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>
以上程序输出样式:

Array
(
[0] => Array
(
[0] => hypertext
[1] => 0
)

[1] => Array
(
[0] => language
[1] => 10
)

[2] => Array
(
[0] => programming
[1] => 19
)
explode()函数
使用一个字符串分割另一个字符串
<?php
// 示例 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
var_dump($pieces);
?>
输出:

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

php分割数组函数 split和explode的区别(同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了)

同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了

需要从写 该函数
if($length && strlen($string) > $length) {

//截断字符

$wordscut = '';

if(strtolower($encoding) == 'utf-8') {

//utf8编码

$n = 0;

$tn = 0;

$noc = 0;

while ($n < strlen($string)) {

$t = ord($string[$n]);

if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {

$tn = 1;

$n++;

$noc++;

} elseif(194 <= $t && $t <= 223) {

$tn = 2;
$n += 2;

$noc += 2;

} elseif(224 <= $t && $t < 239) {

$tn = 3;

$n += 3;

$noc += 2;

} elseif(240 <= $t && $t <= 247) {

$tn = 4;

$n += 4;

$noc += 2;

} elseif(248 <= $t && $t <= 251) {

$tn = 5;

$n += 5;
$noc += 2;

} elseif($t == 252 || $t == 253) {

$tn = 6;

$n += 6;

$noc += 2;

} else {

$n++;

}

if ($noc >= $length) {

break;

}

}

if ($noc > $length) {

$n -= $tn;

}

$wordscut = substr($string, 0, $n);

} else {
for($i = 0; $i < $length - 1; $i++) {

if(ord($string[$i]) > 127) {

$wordscut .= $string[$i].$string[$i + 1];

$i++;

} else {

$wordscut .= $string[$i];

}

}

}

$string = $wordscut;

}

return trim($string);

}
这个函数 就不会有乱码了

php分割数组函数 split和explode的区别(同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了)我爱编程网

关于PHP的trim函数的问题

我爱编程网(https://www.52biancheng.com)小编还为大家带来关于PHP的trim函数的问题的相关内容。

我只告诉你思路,这个问题比较复杂,用Trim恐怕无法解决了

域名可能是.cn也可能是.com.cn,诸如此类,所以你无法将主机名(fgahadf.gfadsg.abc.com)以“.”分割得到数组,然后取后面两个作为根域。

第一步:将所有可能的域名后缀作为后缀数组,比如(.cn,.com,.com.cn,.net等等),而且要注意,“.”多的排在前面;
第二步:正序遍历该数组并和主机名比较,在主机名中查找符合的字符串下标,以你的主机名为例,应该找到.com,符合的字符串下标就是18,然后再在主机名中往前找上一个“.”的下标,得到14,由此可以得到你要的根域名就是主机名字符串中下标15到末尾的字符组成的字符串。

以上就是php分割数组函数 split和explode的区别(同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了)全部内容,更多相关信息,敬请关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
标签: PHP
与“php分割数组函数 split和explode的区别(同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了)”相关推荐
同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了 php问题……php截取字符串几个实用的函数
同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了 php问题……php截取字符串几个实用的函数

同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了需要从写该函数if($length&amp;&amp;strlen($string)&gt;$length){//截断字符$wordscut='';if(strtolower($encoding)=='utf-8'){//utf8编码$

2024-09-10 14:09:16
PHP explode函数的几个应用 php分割数组函数 split和explode的区别
PHP explode函数的几个应用 php分割数组函数 split和explode的区别

php explode 问题当我们处理PHP中的文件操作时,file()函数扮演着关键角色。它不像file_get_contents()那样一次性读取整个文件内容,而是将文件分解为一个数组,每行数据作为一个数组元素,包括行尾的换行符。如果文件读取过程出错,file()函数会返回false。而explode()函数则在字符串处理中发挥功效,它能够根据指定的分隔符separator,将字符串拆分

2024-12-11 06:16:15
php分割数组函数 split和explode的区别 PHP中empty和isset的区别
php分割数组函数 split和explode的区别 PHP中empty和isset的区别

php分割数组函数split和explode的区别一句话总结这三个分割函数的explode用字符串分割,split和preg_split用正则分割.效率方面:explode最快,其次preg_split最后split.split()函数用正则表达式来把字符串拆分并返回数组,如果出错则返回false。用法:split(string$pattern,string$string

2025-01-17 01:58:54
PHP直接调用函数和调用另外一个文件中的函数的区别 PHP函数调用的问题
PHP直接调用函数和调用另外一个文件中的函数的区别 PHP函数调用的问题

PHP直接调用函数和调用另外一个文件中的函数的区别//如果是PHP文件中的函数,唯一的区别是:先引入外部文件,然后直接调用。//如果是外部类文件中的函数,需要引入,然后new 对象后,再调用该对象的函数。$msg=test_msg();function test_msg(){echo "";}//调用外部文件中的函数//首先引入文件include_once 'file.php';$msg=t

2024-08-10 04:52:50
php函数中中$和&$的区别(php函数基础问题)
php函数中中$和&$的区别(php函数基础问题)

php函数中中$和&$的区别&amp;表示获取地址,类似指针,和C语言是差不多的,在VB、VFP等语言里面叫引用,其实是一个东西。在用于函数参数调用的时候,可以这样简单的理解:使用$是传递的变量的一个拷贝,函数里面对参数的修改只在函数执行期间有效,不影响函数外面原来变量的值。使用&amp;传递的就不复制,传递的是变量的引用(也叫指针,相当于快捷方式),那样在函数里面对参数的修改会影响函

2024-09-15 10:58:01
php时间函数问题(date_default_timezone_set设置中国时区)
php时间函数问题(date_default_timezone_set设置中国时区)

php时间函数问题使用date("Y-m-dH:i:s",time())date将服务器的时间格式化。语法:stringdate(stringformat,int[timestamp]);返回值:字符串函数种类:时间日期内容说明返回值的�字符串依配置的格式来决定。若有传入时间戳记值,则将时间戳记格式化返回;若无传入时间戳记值,则将目前服务器的时间格式化返回。

2024-11-03 04:26:56
php函数基础问题(php时间函数问题)
php函数基础问题(php时间函数问题)

php函数基础问题1、int,bool是指函数的返回值类型。2、第一个string是参数类型,第二个string是参数名。3、[,int..]表示可选参数,不输入的话则使用默认值,逗号在前边是跟前边的参数隔开。。。php时间函数问题使用date("Y-m-dH:i:s",time())date将服务器的时间格式化。语法:stringdate(stringform

2024-10-03 15:47:53
php 的日期函数的问题(php时间函数问题)
php 的日期函数的问题(php时间函数问题)

php的日期函数的问题date函数返回各种格式的日期值,date(格式,[日期]),第一个参数是格式,第二个参数是日期,第二个参数可以省略(当前日期),例如date('l')就得到当前星期的完整名称,参数是小写的字母L,结果是Sunday到Saturday。date函数详细的格式字符如下:格式字串可以识别以下format参数的字符串format字符说明返回值例子

2024-10-13 23:51:35