Ограничить количество символов на определенном числе в тексте HTML с PHP - PullRequest
0 голосов
/ 07 мая 2011

Я использую CKEditor , и я нашел / изменил плагин, который считает символы.

У меня есть премиум и основные пользователи. Обычный пользователь ограничен 1000 символами, а надбавка не ограничена, но базовый может написать полный текст для предварительного просмотра / тестирования и т. Д. (Это спецификация клиента, поэтому не может изменить это).

Пока я показываю, например 1500 из 1000 символов в CKEditor, Я хочу сохранить в БД 1500 символов, но при выводе текста отображать только 1000 из них .

Но функции strlen и связанные с ними теги HTML считаются как символы, и я этого не хочу. Также я не хочу лишать их, потому что я потеряю формат.

Есть ли способ быть уверенным, что ограничение будет применено, но все теги также останутся (в PHP) ??

Спасибо ...

Ответы [ 2 ]

5 голосов
/ 07 мая 2011

try

$theHTML='<h2>Hello!</h2>';
$length = strlen ( strip_tags($theHTML) ); //Should be 6
echo "The non-HTML length is: $length";

Это будет лишать теги только для целей подсчета.Теги никогда не теряются.

Обновление

Согласно предложению webbiedave, оно действительно должно быть

$theHTML='<h2>Hello!</h2>';
$length = strlen ( shtml_entity_decode(strip_tags($theHTML)) ); //Should be 6

//This will not trigger since only the text "Hello!" is only 6 chars.    
if ($length > 10) die('ERROR'); 

echo $theHTML; //Will echo full HTML, even though we checked the length without HTML.
0 голосов
/ 07 мая 2011

Этот фрагмент кода, который я использовал ранее: http://www.php.net/manual/en/function.substr.php#92063 эта функция вычитает символы (например, от 0 до 1000), но оставляет теги HTML без изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...