Characters per line and lines per textarea limit

◇◆丶佛笑我妖孽 提交于 2019-12-03 08:52:38

Here it is, based on the code provided by Matthew, but this is shorter and also limits the number of lines.

$lines = array_slice(explode("\n", $string), 0, 50); // max 50 lines

foreach ($lines as $key => $value)
{
    $lines[$key] = substr(trim($value), 0, 50); // max 50 chars
}

$string = implode("\n", $lines);

PHP:

$max_length = 50;
$lines = explode("\n", $input);
for($i = 0; $i < count($lines); $i++)
{
    $lines[$i] = rtrim($lines[$i]); // just incase there's a "\r"
    $lines[$i] = (strlen($lines[$i]) <= 50 ? 
                      $lines[$i] : 
                      substr($lines[$i], 0, 50));
}
$input = implode("\n", $lines);

You could break this down into two processes:

1: Use jQuery (or what ever JavaScript library you like) to validation the 50 character line limit for each line. The validation plugin offers a lot of functionality that might be useful.

2: Use php to double check just in case the use disables the JavaScript on the browser side. This would have to be the on submit functionality due to JavaScript being disabled (So no Ajax)

So what you would have to do is read the text area into an array using the line break \n to split the text into each element in the array. Now check each array element for the 50 character limitation. And now that you have all the text into an array you can also check the rows as well by array size.

Use explode("\n", $str) to break the textarea data into lines, then check the length of each line.

A similar method could be used on the user end with Javascript, but if you want to ensure security you must do it on the PHP end because Javascript can be circumvented.

Ultimately it depends on whether this is to make the user's life easier or to prevent bad things happening.

Find length of longest line:

$length = array_reduce(array_map(explode("\n", $string), 'strlen'), 'max', 0);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!