2014-07-17 49 views
0

我想去掉一個很長的php字符串,它包含很多文本,只輸出完整的前3個句子。去掉一個很長的php字符串

我環顧了SO帖子,發現了一些關於分隔符的答案。但是,這樣做

$pieces = preg_split('/[.]/', $mystring) 

將所有句子存儲在$pieces變量,並採取不必要的空間,因爲我只想只有前3個輸出。有沒有更好的方法?

輸入:包含超過5000個字符的句子的字符串。

輸出:前3個句子。

+0

不知道我理解你想要的這裏;你想把一塊文本分成幾個單獨的句子或其他東西?你可以給例子輸入/期望輸出進一步澄清? – newfurniturey

+2

您必須提供示例:源數據和期望的結果 – hindmost

+1

您能告訴我們:1)輸入字符串使用的最大內存量? 2)將該字符串解析爲臨時數組的成本,獲取前3個元素,然後釋放或重新使用該臨時數組。在內存方面?一些實際的數值會很有用。 –

回答

0

爲了避免存儲每一個部分,你可以通過一段如下方式使用strtok,以tokenize the string

<?php 
$string = "This is an example. string. string. etc. etc."; 
$tok = strtok($string, "."); 

$i = 0; 
while (($tok !== false) && ($i < 3)) { 
    echo "Sentence=$tok<br />"; 
    $tok = strtok("."); 
    $i++; 
} 
?> 

輸出:

Sentence=This is an example 
Sentence= string 
Sentence= string