将文本拆分成部分

时间:2013-12-02 17:15:32

标签: php text split divide

我想将一个大文本分成10个部分(不知何故相等的部分)。 我使用这个功能:

<?php
function chunk($msg) {
   $msg = preg_replace('/[\r\n]+/', ' ', $msg);
   //define character length of each text piece
   $chunks = wordwrap($msg, 10000, '\n');
   return explode('\n', $chunks);
}

$arrayys=chunk($t);
foreach($arrayys as $partt){echo $partt."<br/><br/><br/>";}
?>

但是可以定义每个文本片段的字长(不是字符长度)吗?在这种情况下如何将文字分成文字

3 个答案:

答案 0 :(得分:0)

我建议使用“爆炸” http://php.net/manual/en/function.explode.php 用空格分割字符串。然后,您将获得一系列单词,您可以在其中迭代并构建文本部分。

答案 1 :(得分:0)

来自docs,

<?php
$text = "ABCDEFGHIJK.";
$newtext = wordwrap($text,3,"\n",true);
echo "$newtext\n";
?>

输出:ABC DEF GHI JK.

答案 2 :(得分:0)

你可以这样做。将文本分成相等的部分。$str中的文本有20个字符,因此文本被分成10个部分,其中2个字符作为一组。

假设,如果你的大文字是1000个字符,那么你将得到100个相等的文本部分。

<?php
$div=10;//Equally split into 10 ...
$str="abcdefghijklmnopqrst";
print_r(array_chunk(str_split($str), (strlen($str)/($div))));

<强>输出:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
            [1] => f
        )

    [3] => Array
        (
            [0] => g
            [1] => h
        )

    [4] => Array
        (
            [0] => i
            [1] => j
        )

    [5] => Array
        (
            [0] => k
            [1] => l
        )

    [6] => Array
        (
            [0] => m
            [1] => n
        )

    [7] => Array
        (
            [0] => o
            [1] => p
        )

    [8] => Array
        (
            [0] => q
            [1] => r
        )

    [9] => Array
        (
            [0] => s
            [1] => t
        )

)