Я сделал эту функцию, чтобы ограничить длину строки в выводе,
/* limit the lenght of the string */
function limit_length($content, $limit)
{
# strip all the html tags in the content
$output = strip_tags($content);
# count the length of the content
$length = strlen($output);
# check if the length of the content is more than the limit
if ($length > $limit)
{
# limit the length of the content in the output
$output = substr($output,0,$limit);
$last_space = strrpos($output, ' ');
# add dots at the end of the output
$output = substr($output, 0, $last_space).'...';
}
# return the result
return $output;
}
это работает нормально, но я думаю, что это не идеально ... например, у меня есть этот текст в строке
Gender Equality; Radicalisation; Good Governance, Democracy and Human Rights;
и вот как я использую функцию,
echo limit_length($item['pg_description'], 20);
потом возвращается,
Gender Equality;...
Как вы можете, с ;...
это выглядит не очень хорошо, когда вы хотите сказать людям, что внутри контента / строки больше текста.
Я думал, можно ли использовать регулярное выражение для проверки наличия знака препинания до ...
, а затем удалить его.
Возможно ли это? Как я могу написать выражение, чтобы улучшить свою функцию, чтобы она была «пуленепробиваемой»?
Спасибо.