2017-06-19 85 views
0

我有一個5000字符串的字符串,我想將它分成200個字符的小塊,split_str()函數做到這一點,但我想在上次完整切碎的字符串停止在字符串中而不是將一個單詞或句子分成兩半。PHP吐字符串後x字符,但只在期間

這裏有一個例子:

Samsung Z4. smartpho 

但我需要的是聰明,給我的只是:

<?php 
$str = '<h1>Samsung Z4. smartphone com Tizen. pode estar perto de ser lançado em novo país<h1>'; 
$arr = str_split($str, 20); 

?> 

輸出 '三星Z4。'

+0

您需要添加其轉換輸入和預期的輸出,以及你的代碼 – mkaatman

+0

我沒有一個代碼呢,我希望如果我可以找到它的str函數 –

+1

增加了一個例子 –

回答

1
$last_space = strpos($str, '. ',4000); 
$next_part = substr($str, $last_space); 
//var_dump($next_part); 
$my_part = substr($str, 0 ,$last_space); 
//var_dump($my_part); 
$array[] = $my_part; 
$str = $next_part; 
} 
while($last_space); 
array_push($array,$str); 
+0

這就是我做到的。 –

0

使用帶條帶的循環。確保你發現的時間段後面跟着兩個空格,然後是一個大寫字母(假設你的規則是「字符串中的最後一個句點」),將它添加到你的句子數組中並繼續。

這是一個超級簡單的實現,沒有你在意見中的要求:

<?php 
$str = "Samsung Z4. smartphone com Tizen. pode estar perto de ser lançado em novo país"; 
$sentences = array(); 
$sentences = explode(".", $str); 
echo $sentences[0]; 
+0

你可以請寫一個例子,我編了一個代碼位 –

+0

查看我的更新的答案。如果滿意,請標記爲正確和滿意。 –

+0

我從你的回答中得到了總體思路,但是它不符合字符限制的條件,我打算將其應用於與過濾器相同的字符串。 –