1. 云栖社区>
  2. PHP教程>
  3. 正文

富文本编辑器——关于PHP如何不断生成html页面并生成链接

作者:用户 来源:互联网 时间:2017-12-01 09:26:54

htmlphp编辑器页面链接文本生成如何关于

富文本编辑器——关于PHP如何不断生成html页面并生成链接 - 摘要: 本文讲的是富文本编辑器——关于PHP如何不断生成html页面并生成链接,     之前公司有一个需求,就是完成一个富文本编辑器。一开始我以为这是一个很简单的事情,但是事实证明这非常难。关于如何每次都自动生成一个html页面,我做了很多次尝试,也在网上找了很多帖子,但是都没有解决,最后,我采用了一个简单而且效率高

    之前公司有一个需求,就是完成一个富文本编辑器。一开始我以为这是一个很简单的事情,但是事实证明这非常难。关于如何每次都自动生成一个html页面,我做了很多次尝试,也在网上找了很多帖子,但是都没有解决,最后,我采用了一个简单而且效率高占空间少的办法。如果有空我将要写一下我整个编写富文本编辑器的过程。

    首先,因为每次都要提交,而且生成的页面名字必然是不同的,所以,必然有一个递增的过程。一开始我用for循环,后来证实了for循环在这里是不适用的。首先,for循环每次都要有一个初始值,如果要递增的话那么这个初始值应该是上一次保存的值,很显然这个我实现不了。不知道大家是不是有办法。其次,如果是要生成一个页面,那么for循环只能实现一次就要break,可是break之后后面的代码没有实施,也许brek之后加一个返回值就行,但是介于前面的原因就不再测试了。

     首先,从提交的页面post过来的数据,我已经在提交的时候就已经将收尾封装好,也就是说如果是一段内容为“aa”,那么post到这个页面的内容就是<p>aa</p>了。这个功能实现非常简单,只是更改一下可编辑div的innerHTML和textarea的value值就可以做到。既然要每次生成一个新的页面,那么页面应该在一个文件夹里,可是页面的名字是不一样的。我采用的办法是设置一个txt文件存储html文件名的后缀,然后设置一个文件夹存储每次生成的html文件,注意,这里一定要设置一个子文件夹,不然会导致编辑器文件夹里文件越来越庞大。代码如下:

header('content-type:text/html;charset=utf-8');	$tijiao = $_POST['tijiao'];	$fc = file_get_contents("te.txt");	$fff = fopen("te.txt", "w");

    header肯定会有的,我按顺序贴出来。这里出现的问题是,我接收了post过来的数据,但是生成的html页面会没有<meta charset='utf-8'>这一项,显然这会导致乱码,于是我重新设置了一下post过来的数据:
$all = "<!DOCTYPE html>"."<head>	<meta charset='UTF-8'>	<title>editor</title></head>"."<body>".$tijiao."</body>"."</html>";
    这样就给数据加上了编码,在运行的时候就不会出现乱码了。

    接下来,我需要给生成的页面命名,要设置名字递增,这样te.txt就发挥了它的作用,fopen的w模式在写的时候会覆盖之前的内容,那么只需要每次加一,然后把这个数字覆盖到te.txt中,然后就可以实现有一个变量每打开一次这个文件就加一,然后用这个数字作为文件名的后缀,这样就可以产生名字不一样的文件。fopen()函数每次打开文件的时候如果文件不存在就会自动创建文件,生成html页面就是利用了这个功能:

$count =$fc+1;	$ff = "html/test".$count.".html";	$fp = fopen($ff,"w");	$f = fwrite($fp,$all);	$fd = fwrite($fff,$count);	fclose($fp);	fclose($fff);

    最后加一段文字每次显示生成页面成功,然后把链接加上就好了。

<p>生成页面成功,链接是</p> <a href="<?php echo $ff; ?>">点击这里</a>
一下是这个php页面的代码,用来不断生成新的html页面:

<?php 	header('content-type:text/html;charset=utf-8');	$tijiao = $_POST['tijiao'];	$fc = file_get_contents("te.txt");	$fff = fopen("te.txt", "w");	$all = "<!DOCTYPE html>"."<head>	<meta charset='UTF-8'>	<title>editor</title></head>"."<body>".$tijiao."</body>"."</html>";	$count =$fc+1;	$ff = "html/test".$count.".html";	$fp = fopen($ff,"w");	$f = fwrite($fp,$all);	$fd = fwrite($fff,$count);	fclose($fp);	fclose($fff); ?> <p>生成页面成功,链接是</p> <a href="<?php echo $ff; ?>">点击这里</a>
    很简单吧,我一开始想了很多办法都没用。。。看来很多时候原理很简单的事情大家都会想复杂了。转载请注明出处:贺小花儿。


以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索html , php , 编辑器 , 页面 , 链接 , 文本 , 生成 , 如何 , 关于 ,以便于您获取更多的相关知识。