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`函數,可以方便地處理字元串,並將其轉換為數組形式進行後續操作。