今天使用TinyMCE编辑器,保存数据的时候,发现他不会自动添加P标签,导致所有段落都是一行,也就是没有段落,但是查看源代码的时候是有类似于TXT文档的换行段落,对于多个空格和换行,浏览器只会把他当作一个空格处理,如果需要有段落,必须添加P标签。
在HTML规范里,与段落有关的标签之一是P标签,记作p段落文字/p。由此分析,给文本区里的文字的每一行头尾加入P标签即可达到以HTML的方式格式化其文本的目的。
PHP接受文本区内容的方式是把文本区的全部字符当作一个单一的string变量来实现,因此行的概念并不直接,好在来自文本区的字符包含有回车符,一个回车符代表一行的结束,我们可以通过整个字符串的回车符识别该文本所包含的行,从而给各行加入P标签的起止符以便将段落分开。
假设文本区的name参数命名为为design_str,提交给PHP程序后将被视作变量$design_str。我们先给文本的开始处加入p标签,再通过PHP内置函数str_place将换行符\r\n转换为/pp,接着在文本的末尾加入/p标签,最后,整理一下整个字符串,使之按一组一组P标签的形式独立成行以美化代码,更重要的是提高代码的可读性:
$str=trim($design_str);//取得字串同时去掉头尾空格和空回车//$str=str_place("br","",$str);//去掉br标签$str="p".trim($str);//在文本头加入p$str=str_place("\r\n","/p\np",$str);//用p标签取代换行符$str.="/p\n";//文本尾加入/p$str=str_place("p/p","",$str);//去除空段落$str=str_place("\n","",$str);//去掉空行并连成一行$str=str_place("/p","/p\n",$str);//整理html代码
这样完整的HTML代码已经得到,它把用户在文本区里输入的各行文字都冠以标准的段落标签并分好了行,只要把它提交给相应的处理程序,它就能以规范的正文文本方式输出在浏览器中。