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
)