php中文分割
‘壹’ 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);
?>
‘贰’ php中,如何将一串数字分割成一个个,并计算他们的个数
需要准备的材料分别是:电脑、php编辑器、浏览器。
1、首先,打开php编辑器,新建php文件,例如:index.php。
‘叁’ 怎样将php里的汉字字符串分割成单个字符
很简单,代码如下:
<?php
$str="HelloFriend";
$arr1=str_split($str);
$arr2=str_split($str,3);
print_r($arr1);
print_r($arr2);
/*Outputmaylooklike:
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
)
*/
?>
‘肆’ php "str_split"函数分割中文字符串乱码问题……
一个解决方案.
测试发现,preg_split对中文(多字节)的分隔符处理可能真的存在问题.
原因可能是正则匹配时不能正常分隔一个多字节字符(猜测).
但我实验用半角(英文)的分隔符就工作得很好.
于是
我在处理待分隔的文本前先对文本进行替换,把中文的句点和逗号都替换成英文半角的.然后再使用preg_split,暂时发现工作得不错.
以下是我的测试代码.
<?php
$test = <<<EOF
记者从有关人士处获悉,嫦娥二号发射的各项准备工作全部就绪,昨日经专家组评审,卫星、火箭、发射场、测控等系统均情况正常,具备发射条件。今天起,西昌卫星发射中心的加注手将为火箭加注燃料。
据一位航天专家介绍,因为地球和月球都在转动的缘故,所以地月之间的最佳交汇点每年仅出现3次,而这3次便是发射探月卫星的最佳节点,经过观测,今年3次的出现时间分别为10月1日、10月2日和10月3日,而最佳发射窗口则是1日晚7时,2日晚8时和3日晚10时,其中国庆日晚7时为佳中之佳。
针对媒体称10月1日发射窗口时间为晚6时59分57秒,该专家告诉本报记者,早3秒并非提前3秒发射,而是将这3秒时间预留出来,作为现场指挥员在发送倒计时口令的缓冲时间。(记者万强)
EOF;
//$input = $_POST[$content]; //........................获取要分割的字符串
$test = str_replace(",",',',$test);
$test = str_replace("。",'.',$test);
$mode="/[,|.]/s"; //......................用“逗号” 和 “句号” 分割字符串
$output = preg_split($mode,$test,-1);
print_r($output);
?>
============
楼主不防试试,我的代码是gb2312的字串.
经测试在,字符串为UTF8时,也可以正常工作.
‘伍’ PHP 如何实现按字数分割中英文混杂字符串成数组
以下是我编写的代码,实现对中英文混杂字符进行分割:
<?php
function mbStrSplit ($string, $len=1) {
$start = 0;
$strlen = mb_strlen($string);
while ($strlen) {
$array[] = mb_substr($string,$start,$len,"utf8");
$string = mb_substr($string, $len, $strlen,"utf8");
$strlen = mb_strlen($string);
}
return $array;
}
header('Content-type:text/html;charset=utf-8');
$str = '我爱北京3我爱上海-我爱xianggang';
$r = mbStrSplit($str, 4);
echo '<pre>';
print_r($r);
echo '</pre>';
?>
运行结果:
Array
(
[0] => 我爱北京
[1] => 3我爱上
[2] => 海-我爱
[3] => xian
[4] => ggan
[5] => g
)
‘陆’ php 截取字符 前面两个字
或者可以正则:
<?php
$str="提问:你是谁啊?";
if(preg_match("/提问/",$))echo"ok";
‘柒’ php中利用explode函数分割字符串到数组
答案:
在PHP中,可以使用`explode`函数将字符串按照指定的分隔符分割成数组。
详细解释:
`explode`函数的基本用法
`explode`函数是PHP中用来分割字符串的内置函数。它的基本语法是:`explode: array`。其中,`$delimiter`是分隔符,`$string`是需要被分割的字符串,而`$limit`是可选参数,表示返回数组的最大长度。
如何使用`explode`函数
要使用`explode`函数,首先需要指定一个分隔符,然后提供需要被分割的字符串。函数会将字符串按照分隔符进行分割,并返回一个数组。例如,如果要按照逗号分割一个字符串,可以这样做:
php
$str = "apple,banana,orange";
$array = explode;
print_r;
以上代码会输出:
csharp
Array
注意事项
* `explode`函数返回的是一个数组,数组中的每个元素都是原字符串中被分隔符分割后的子串。
* 如果分隔符在字符串中不存在,`explode`会返回一个只包含一个元素的数组,该元素就是原始字符串。
* 如果设置了`$limit`参数,返回的数组将只包含最多`$limit`个元素。超过这个数量的元素将被丢弃。例如,如果设置`$limit = 2`,那么上述例子中只会返回前两个元素。
通过合理使用`explode`函数,可以方便地处理字符串,并将其转换为数组形式进行后续操作。