Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Php中缩短HTML文本_Php_Html - Fatal编程技术网

如何在Php中缩短HTML文本

如何在Php中缩短HTML文本,php,html,Php,Html,可能重复: 我有html数据保存在数据库中。我想将html显示为缩短的。。 我试着像这样使用mb_strstr函数 $str = mb_strstr($this->htmlData, "</p>",true); echo $str."</p>"; $str=mb\u strstrstr($this->htmlData,,true); echo$str.“”; 它与html的第一段相呼应。但问题是html在管理面板中填充,有时第一段文字不够。 我也不想将固定字符

可能重复:

我有html数据保存在数据库中。我想将html显示为缩短的。。 我试着像这样使用
mb_strstr
函数

$str = mb_strstr($this->htmlData, "</p>",true);
echo $str."</p>";
$str=mb\u strstrstr($this->htmlData,

,true); echo$str.“

”;
它与html的第一段相呼应。但问题是html在管理面板中填充,有时第一段文字不够。 我也不想将固定字符位置与
substr
一起使用,因为有时假设200个字符可以是html标记,因此它会生成无效格式的html格式输出

所以我想学习解决这类问题的最佳实践


谢谢。

在所见即所得编辑器中添加一些自定义标记或代码(例如:
)。您可以使用它将介绍部分与本文的其余部分分开。这将帮助您避免在介绍部分中打开PHP标记时出现混乱。此外,它还为作者提供了手动决定文本中哪一部分适合于介绍的选项


另一个明智的想法是在数据库中为简介部分创建一个单独的字段。是的,这会花费更多的内存,但它会给作者一个选择,让更多的人打开整篇文章,写有趣的介绍文字…

在这里,你已经获得了一些乐趣。要学习的教训是不要在数据库中存储html。您的mb_strstr带有关闭的p标记,应该可以防止它在标记中分裂,但这并不意味着您没有在另一个标记完全打开的位置分裂。什么意思不将其存储在db中?有点像wordpress。。用户在WYSIWYG编辑器中输入博客文章,然后将html源代码保存在db中。。这里到底有什么问题?我只是个傻瓜。您可以存储使用strip_tags()删除html的摘要,但这在其他方面可能不可靠。可能比尝试在读取时正则化字符串并关闭所有标记更痛苦。实际上,我喜欢使用自定义标记的想法。但对于管理员用户来说,用新标签编辑html效率很低。也许在WYSIWYG上实现一个新的自定义按钮,以便为用户自动执行。。无论如何,这也是另一项努力,我不想因为在编辑器上实现而失去重点。。新列看起来有点不友好。除非自动创建,否则对用户是透明的。他们不需要知道这个新领域。你使用的是打包的CMS还是你自己的?我使用的是我自己的实现,CKEditor@KaiQingI发现了这一个。你对性能的看法如何?我认为如果你在更新时截断(添加/编辑)并将结果保存在自己的字段中,性能将不会有问题。因为你在用你自己的东西,所以你有完全的控制权。