У меня есть мой код на стороне клиента javascript, чтобы проверить это, но на случай, если он потерпит неудачу, мне нужно будет добавить опцию, чтобы проверять не только строки, но и столбцы на строку для этого сценария на стороне php-сервера. Я буду очень признателен за любую помощь в этом и спасибо, что нашли время, чтобы проверить мой вопрос и, возможно, ответ.
$lines = array_slice(explode("\n", trim( $_POST['description'])), 0, 6); // max 6 lines
foreach ($lines as $key => $value)
{
$lines[$key] = substr(trim($value), 0, 300); // max 300 chars
}
$insert['teams_descr'] = implode("\n", $lines);
$this->db->update( 'teams', $insert, array( 'teams_id' => $this->user->leader_team_id() ) );
foreach ($lines as $key => $value)
{
$chars_per_line = str_split($value);
if(count($chars_per_line) > 300){
// Do something
} else {
// Do something
}
}
Если вы работаете с многобайтовыми символами, вам нужно использовать mb_strlen
чтобы получить длину и mb_substr
извлечь подстроки:
$lines = array_slice(explode("\n", trim( $_POST['description'])), 0, 6); // max 6 lines
foreach ($lines as $key => $value) {
$lines[$key] = mb_substr($value, 0, 300);
}
Если вы, вероятно, имеете дело с различными кодировками текста, проверьте документацию для преобразования между кодировками. Если вы написали форму, из которой вы собираете данные, убедитесь, что вы установили кодировку текста и что ваша база данных использует ту же кодировку.