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

如果字符数较大,如何拆分PHP字符串,php,count,explode,Php,Count,Explode,我有一个用户输入字段。它将是一个文本区域。当用户提交表单时,我想检查输入的字符数是否超过10。如果超过10个,我想将其拆分。很明显,如果我得到一根绳子 $someWords = "Pleasedon'tblowmetopiecesandthis will be a 12345 random."; 然后我想把这根绳子分开。每个部分的长度不得超过10个字符。所需结果(干净文本)应如下所示: tblowmetop iecesandth is will be a 12345 r andom 如何

我有一个用户输入字段。它将是一个
文本区域
。当用户提交表单时,我想检查输入的字符数是否超过10。如果超过10个,我想将其拆分。很明显,如果我得到一根绳子

$someWords = "Pleasedon'tblowmetopiecesandthis will be a 12345 random.";
然后我想把这根绳子分开。每个部分的长度不得超过10个字符。所需结果(干净文本)应如下所示:

tblowmetop
iecesandth
is will be
 a 12345 r
 andom

如何在PHP中实现这一点?我知道如何使用strlen($string)获取计数

您可以使用PHPs内置功能:

这将为您提供一个字符串,每10个字符后有一个换行符

$chunked = chunk_split($someWords, 10);
如果要获得每个条目包含10个字符的数组,可以使用PHPs:

查看此链接以了解更多信息


需要在str_split之前删除空格usestr_replace函数,以替换字符串中的空格PHP有一个名为的内置函数,用于拆分字符串并创建数组

$arr = str_split($someWords, 10);
这段代码将创建一个字符串数组,每个字符串的长度为10个字符。类似的函数可用于每n个字符插入额外的内容

$chunked = chunk_split($someWords, 10);

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

您可以尝试递归地使用

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."
}

出于好奇:为什么?我有一列只接受小于10个字符的值。因此,我需要添加10个字符或更少的小部分。为什么不更改表/列?不。我希望这样。谢谢。这是可行的,但它输出为一个字符串。下面的答案很有用。谢谢你的努力,你要的是一根线。但是我现在添加了使用
str_split()
来获得一个包含10个字符的子字符串的数组。
$chunked = chunk_split($someWords, 10);
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."
}