我有一个用户输入字段。它将是textarea
。当用户提交表单时,我想检查输入的字符数是否大于10.如果超过10,我想拆分它。清楚地说,如果我得到一个字符串
$someWords = "Pleasedon'tblowmetopiecesandthis will be a 12345 random.";
然后我想拆分这个字符串。每个部分最多应为10个字符。必填结果(干净的文字)应如下所示,
tblowmetop
iecesandth
is will be
a 12345 r
andom
我怎样才能在PHP中执行此操作?我知道如何使用strlen($string);
进行计数。
答案 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."
}