我正在使用 CKEditor ,我找到/修改了一个对字符进行计数的插件。
我有优质和基本用户。 基本用户限制为1000个字符,溢价是无限制的,但基本可以为预览/测试等编写全文(这是客户规范,因此无法更改)。
我正在展示,例如CKEditor中有1500个字符,我想保存在DB 1500字符中但在文本输出中只显示其中的1000个字符。
但strlen和相关函数将HTML标记计为字符,我不希望这样。我也不想剥离它们,因为我会丢失格式。
有没有办法确定是否会应用限制,但所有标签都将保持(在PHP中) ??
...谢谢
答案 0 :(得分:5)
试
$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.
答案 1 :(得分:0)
我之前使用过的这段代码:http://www.php.net/manual/en/function.substr.php#92063
这个函数减去了字符(fe.0到1000),但保留了HTML标签。