2014-07-17 43 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