A. php中字符串分割
你研究一下 正则表达式 吧。
PHP的 split() 函数兼容正则表达式语法。
关于以上用法,给个例子你参考:
<?php
// 分隔符可以是斜线,点,或横线
$date = "04/30/1973";
list($month, $day, $year) = split ('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
?>
提示
preg_split() 函数使用了 Perl 兼容正则表达式语法,通常是比PHP函数split()更快的替代方案。如果不需要正则表达式的威力,则使用 explode() 更快,这样就不会招致正则表达式引擎的浪费。
B. php分割字符串
/**
*宽字符串分割
*
*@paramunknown_type$str
*@returnunknown
*/
functionsplit($str){
$ret=array();
$len=strlen($str);
for($i=0;$i<$len;$i++){
//判断编码位数
$code=ord($str[$i]);
//单字节0
if($code>>7==0){
$ret[]=$str[$i];
}
//4字节1111
elseif($code>>4==15){
if($i<$len-3){
$ret[]=$str[$i].$str[$i+1].$str[$i+2]+$str[$i+3];
$i+=3;
}
}
//3字节111
elseif($code>>5==7){
if($i<$len-2){
$ret[]=$str[$i].$str[$i+1].$str[$i+2];
$i+=2;
}
}
//双字节11
elseif($code>>6==3){
if($i<$len-1){
$ret[]=$str[$i].$str[$i+1];
$i+=1;
}
}
}
return$ret;
}
上面是分隔中文字串为数组的.
这种方式性能比正则表达式要高点. GBK , UTF-8 编码都是支持的.
分隔完毕之后, 你在循环数组, 设置步长为3 . 然后就可以拼接出你要的了.
C. php根据换行分割字符串
Windows下是以\r\n换行。不过结果是一样的啦(你也可以分割好后再替换掉\r。其实如果你输出的话浏览器是会忽略\r的),只要不是苹果机(以\r换行)就不会出问题。
D. 字符串中(内容)有多个分隔符PHP explode 怎么分割数组
explode — 使用一个字符串分割另一个字符串, 它的函数原型如下:
array explode ( string $delimiter , string $string [, int $limit ] )
因此,它不可以提供多个字符作为分割符来进行分割数组。
如果要使用多个字符串作为分割字符,可以用另外一个函数 preg_split。
通过一个正则表达式分隔字符串, 它的函数原型如下:
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )
举例:
<?php
$str = "aa--bb++cc**dd";
$arr = preg_split('/[-+\*]+/is', $str);
echo "<pre>";
print_r($arr);
echo "</pre>";
它的输出结果是:
Array
(
[0] => aa
[1] => bb
[2] => cc
[3] => dd
);
E. php中如何给类似于下面这样一个字符串添加分隔符呢
一种是用正则表达式!全部获取到数组,然后再implode
二就是,替换了,若果全是像你写的,那么$str=str_replace('/><img','/>,<img',$str);
F. php 分割字符串
这100分来得好爽哦,楼上的正解。
关于str_split的详细例子程序:
<?php
$str="HelloFriend";
$arr1=str_split($str);
$arr2=str_split($str,3);
print_r($arr1);
print_r($arr2);
?>
上例将输出:
Array
(
[0]=>H
[1]=>e
[2]=>l
[3]=>l
[4]=>o
[5]=>
[6]=>F
[7]=>r
[8]=>i
[9]=>e
[10]=>n
[11]=>d
)
Array
(
[0]=>Hel
[1]=>lo
[2]=>Fri
[3]=>end
)
但是,str_split不支持汉字,会把汉字分为两半,需要把汉字当为一个字符进行处理的时候,需要自己编写函数。
G. php正则表达式字符串分割
在每个 .box 前面加个标示符,通过这个标示符分割
$source="<divclass='box'>
<divclass='title'>嗨,我是标题君1号</div>
<divclass='masll'>hi,我是副标题</div>
</div>
<divclass='box'>
<divclass='title'>嗨,我是标题君1号</div>
<divclass='masll'>hi,我是副标题</div>
</div>
<divclass='box'>
<divclass='title'>嗨,我是标题君1号</div>
<divclass='masll'>hi,我是副标题</div>
</div>";
$source=str_replace("<divclass='box'>","@@<divclass='box'>",$source);
$source=preg_replace('/^@@/','',$source);
$ary=explode('@@',$source);
print_r($ary);
H. php如何分割中文字符串
php分割中文字符串,如果直接用PHP函数“str_split”来分割,会出现乱码,因为中文字符长度和英文字符长度是不一样的。
所以,可以建立新的函数先把字符转成ASCII值,接着通过判断不同字符的长度来正确分割中文字符串,把结果存入数组,最后再用PHP函数“join”在字符间插入百分号。
具体参考代码如下:
<?php
functionstr_split_utf8($str){
$split=1;
$array=array();
for($i=0;$i<strlen($str)){
$value=ord($str[$i]);
if($value>127){
if($value>=192&&$value<=223)$split=2;
elseif($value>=224&&$value<=239)$split=3;
elseif($value>=240&&$value<=247)$split=4;
}else{
$split=1;
}
$key=NULL;
for($j=0;$j<$split;$j++,$i++){
$key.=$str[$i];
}
array_push($array,$key);
}
return$array;
}
$string="网络知道www..cn";
$arr1=str_split_utf8($string);
echojoin("%",$arr1);
?>
I. php 如何分割字符串的每个字符
可以当数组使用,例如:
<?php
$s='hello';
for($i=0;$i<strlen($s);$i++)echo$s[$i]." ";
?>
程序注意显示字符串的每个字符,输出:
h
e
l
l
o
J. php的分隔符是哪一个
分隔符可以使任意非字母数字、非反斜线、非空白字符。经常使用的分隔符是正斜线(/)、hash符号(#)
以及取反符号(~)