php分割
⑴ 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 . 然后就可以拼接出你要的了.
⑵ PHP分割字符串
假设你的这个字符串名为$str
$str = 'john123mike33lily51';
$name = preg_split("/[\d]+/", $str);
$number = preg_split("/[a-z|A-Z]+/", $str);
那么$name就是名字数组,$number是数字数组。其中应用到了正则表达式
⑶ 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不支持汉字,会把汉字分为两半,需要把汉字当为一个字符进行处理的时候,需要自己编写函数。
⑷ PHP中如何分割字符串
最常用函数 substr(); 不考虑性能情况下的,万能分割函数
$str = "hello";
substr($str,1); // ello
substr($str,0,3); // hel
substr($str,3,1); // l
不用我再解释吧
⑸ php 数字符号分隔如何实现
<?php
class Cart{
protected $_data;
/**
* 取出串
* @return string
*/
public function getData(){
return $this->_data;
}
/**
* 设置串
* @param string $data
* @return boolean
*/
public function setData($data){
$data = trim($data);
$pattern = '/^(\d+,[\w\d]+,\d+@)*$/';
$valid = preg_match($pattern, $data);
if($valid){
$this->_data = $data;
return true;
}
return false;
}
/**
* 添加商品,当商品存在时修改数量,注意$number为负数时可以减少数量,且数量<=0会删除商品
* @param int $id
* @param int|string $type
* @param int $number
* @return null
*/
public function addItem($id,$type,$number){
$currentNumber = $this->getItemNumber($id);
if(!$currentNumber){
$number>0 && $this->_data .= "$id,$type,$number@";
}else{
$this->modifyItem($id, $number+$currentNumber);
}
}
/**
* 修改某个商品数量,如<=0,直接删除
* @param int $id
* @param int $number
* @return boolean
*/
public function modifyItem($id, $number){
if(!$this->getItemNumber($id)){
return false;
}
if($number<=0){
return $this->deleteItem($id);
}
$pattern = "/$id,([\w\d])+,\d+@/";
$replacement = "$id,\${1},$number@";
$this->_data = preg_replace($pattern, $replacement, $this->_data);
return true;
}
/**
* 取得某个商品已有数量
* @param int $id
* @return int
*/
public function getItemNumber($id){
$pattern="/$id,[\w\d]+,(\d+)@/";
preg_match($pattern, $this->_data, $match);
return empty($match)? 0:$match[1];
}
/**
* 读取数据
* @return array
*/
public function getItemList(){
$list = array();
$items = trim($this->_data, '@');
$items = explode('@', $items);
foreach($items as $item){
$item = explode(',', $item);
array_push($list, array('id'=>$item[0], 'type'=>$item[1], 'number'=>$item[2]));
}
return $list;
}
/**
* 删除商品
* @param int $id
* @return boolean
*/
public function deleteItem($id){
if(!$this->getItemNumber($id)){//不存在
return false;
}
$pattern = "/$id,[\w\d]+,\d+@/";
$replacement = '';
$this->_data = preg_replace($pattern, $replacement, $this->_data);
return true;
}
}
?>
现写的,不过因为时间原因,没有仔细检查测试,不过如果这样都不被采纳我就无奈了。。
⑹ 请问如何用PHP分割内容
$arr1=explode("\n",$imgtxt);
for($arr1 as $v){
$arr2=explode("::::::",$v);
echo "<img src=\"".$arr2[1]."\" alt=\"".$arr2[0]."\" width=\"".$arr2[2]."\" height=\"".$arr2[3]."\">";
}
⑺ 怎么用php分割出这样的内容
$arr = explode('###',$str);
$str2 = '';
foreach($arr as $v){
$text = explode('$',$v)[0];
$url = explode('$',$v)[1];
$str2 += "<li><a href='{$url}'>{$text}</a></li>";
}
echo $str2;
基本思路就是
先把每条的数据拿出来,用###分割的
每条数据中用$分割的 ,第一部分是展现是的文字,第二部分是url
组合字符串展示出来
⑻ php中如何分割文本
PHP用空格分割文本为数组的方法:
php逐行读取文本文件,然后处理空格分隔文本,输出为数组的方法。
文本文档text.txt内容:
1 字段1 字段2 2 字段1 字段2 3 字段1 字段2 4 字段1 字段2
文本和文本之间用空格隔开,用php经过处理,输出为数组,以下是代码:
< php $file = fopen("text.txt", "r") or exit("Unable to open file!");
while(!feof($file)) { $arr = split(' ' , fgets($file)); print_r($arr); } fclose($file); >
输出结果:
Array ( [0] => 1 [1] => 字段1 [2] => 字段2 ) Array ( [0] => 2 [1] => 字段1 [2] => 字段2 ) Array ( [0] => 3 [1] => 字段1 [2] => 字段2 ) Array ( [0] => 4 [1] => 字段1 [2] => 字段2 )
这样就实现了PHP用空格分割文本为数组的方法.
⑼ php 分割获取字符串
我们在使用PHP语言进行编程操作时,通常都会对字符串进行增减,改变等。那么,如何才能实现PHP分割字符串的功能呢?在接下来的文章中我们将会为大家详细介绍。
PHP分割字符串代码示例:
< ?php
$str = ’1234′;
$arr = str_split($str);
print_r($arr);
?>
结果 : Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
定义和用法
str_split() 函数把字符串分割到数组中。
语法 length 表示每个字符串的个数
str_split(string,length) 默认长度是1 上面如果是str_split($str,2) 结果为Array ( [0] => 12 [1] => 34)
如果是$str=’1 2 3 4′ 这个时候就用 explode()函数 explode(‘ ‘,$str) 按照空格分开
如果是一篇文章的内容时候截取方法是按照字符的个数:用到strlen()函数和substr()字符串截取函数来实现PHP分割字符串的功能,如:
< ?php $len=strlen($row['game_detail']);
//获取这个字符串的长度;
if($len>102)
//判断字符串如果大于102就输出102个字符串。
{ echo $s=substr($row['game_detail'],
0,102); echo '...';
}
else{ echo $row["game_detail"];
//否则就输出全部;
}
?>
也就是在输出前做个判断。。strlen(字符串名称)。。substr(字符串,0,102)要分割的范围0-103。以上这些就是PHP分割字符串的全部方法,希望大家有所掌握。
⑽ php 分割数组数据
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
)