如果字符数更大,如何拆分PHP字符串

时间:2014-10-01 12:38:40

标签: php count explode

我有一个用户输入字段。它将是textarea。当用户提交表单时,我想检查输入的字符数是否大于10.如果超过10,我想拆分它。清楚地说,如果我得到一个字符串

$someWords = "Pleasedon'tblowmetopiecesandthis will be a 12345 random.";

然后我想拆分这个字符串。每个部分最多应为10个字符。必填结果(干净的文字)应如下所示,

tblowmetop
iecesandth
is will be
 a 12345 r
 andom

我怎样才能在PHP中执行此操作?我知道如何使用strlen($string);进行计数。

4 个答案:

答案 0 :(得分:1)

您可以使用PHP内置函数chunk_split()

$chunkedString = chunk_split($someWords, 10);

这会给你一个字符串,每10个字符后有一个换行符。

如果您想获得一个包含10个字符条目的数组,您可以使用PHP str_split()

$chunks = str_split($someWords, 10);

答案 1 :(得分:0)

<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>

此功能将空格(&#34;&#34;)计为一个字符 输出

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
)

http://php.net/manual/en/function.str-split.php

查看此链接以获取更多信息

需要在 str_split 之前删除空格 str_replace ,以替换字符串中的空格

答案 2 :(得分:0)

PHP有一个名为str_split()的内置函数,它分割一个字符串并创建一个数组。

$arr = str_split($someWords, 10);

此代码将创建一个字符串数组,每个字符串的长度为10个字符。类似的函数chunk_split()可用于每n个字符插入附加内容。

$chunked = chunk_split($someWords, 10);

$chunked单个字符串,每10个字符插入一行。此函数可用于包装输出文本。

答案 3 :(得分:0)

您可以尝试使用递归

function submystr_to_array($str, $length, $arr_result = array() )
{
    $istr_len = strlen($str);

    if ( $istr_len == 0 )
        return $arr_result;

    $result = substr($str, 0, $length);
    $tail = substr($str, $length, $istr_len );

    if ( $result )
        array_push( $arr_result, $result );

    if( !$tail )
        return $arr_result;

    return submystr_to_array( $tail, $length, $arr_result);
}

$mystr = "Pleasedon'tblowmetopiecesandthis will be a 12345 random.";

var_dump( submystr_to_array($mystr, 10) );

结果:

array(6) {
  [0]=>
  string(10) "Pleasedon'"
  [1]=>
  string(10) "tblowmetop"
  [2]=>
  string(10) "iecesandth"
  [3]=>
  string(10) "is will be"
  [4]=>
  string(10) " a 12345 r"
  [5]=>
  string(6) "andom."
}