-----是为题php
面象对向的三大特色:封装性、继承性、多态性。html
咱们在前面定义一个类的时候,实际上就是把一类事物共有的属性和行为提取出来,造成一个物理模型(模版),这种研究问题的方法称为抽象。封装就是把抽取出来的数据和对数据的操做封装在一块儿,数据被保护在内部,程序的其余部分只有被受权的操做(方法)才能对数据进行操做。前端
-----引子后端
有人说,人是健忘的。当你遇到困难的时候,若是这个问题涉及到你的环境,你就会想法设法,去解决,绞尽脑汁,或是劳心劳力,最后解决了,每每又会很快抛之脑后,最后上天眷顾,再次降临,你又会重复上述的步骤。前后端分离
-----正文ide
在新项目中,基于一个PHPWind论坛程序,作新功能的添加。PW写法,相对于当下主流的MVC或是先后端分离,仍是有所不一样。所系工做起来仍是比较费力。作了一个新功能,主要是是模仿前端已经实现的功能,后端给他再添加一个,基本功能都已经实现,可是有一点小小的异常。由于这个设计到前端,并且小白的前端又不是特别好,因此主要是问了之前前端的同事,才把大体功能实现的。测试
前端会员发表的帖子,后台在审核的时候,能够对帖子分类和标题进行修改,而后审核经过,原始版本是有审核功能,因此这通常须要新加一个修改帖子内容的功能。帖子的分类仍是比较好处理,主要是内容,由于前端是经过一个富文本wysiwyg_editor提交过来的,因此后端固然也是须要如此,:获取帖子内容,展现在富文本中,管理员能够修改内容及排班,能够预览,而后OK后提交,修改帖子。url
基本实现是,复制了一个前段的富文本模板wysiwyg_editor_admin.htm,而后在修改页面content.htm加载模板,在后台content.php中新增模板的必要参数。由于富文本模板以前是在前段因此加入了些js文件的引入。大体能够达成当下的业务需求,可是在提交的初版的时候,发如今编辑内容,和预览内容的时候,内容自己换行后,在切换代码编辑模式下,便自动生成了换行符号 "<br>”,可是前端没有如此,虽然当下很难看懂,和说明白这个富文本究竟是怎么执行的,业务须要尽快。最好最快的方法固然是找不一样,为何一样处理一件事情,结果却不同。spa
这个问题的着手点,一直都没有头绪,由于这哥功能,当时以为比较难以入手,因此找的同事帮忙看的。设计
在发现这个问题的时候,我内心自己是抵触的,一方面,这个不大印象使用,业务这样说了,给了我一个暧昧的心态。不得不说,回过头来看,这个世界某些事情,不能有暧昧的想法,否则会影响你原本就低的工做能力的发挥。由于暧昧,因此心存侥幸,因此代码不会很健壮。可是后面,业务说了,仍是须要处理。因而问题来了,我须要解决这个不知道从何入手的原本是我本身的问题的问题。
从哪里入手,这个是一个开始。我确实不知道,植物大战僵尸里面有一句经典名言,脑子是个好东西。确实,我点击这页面,看着不一样的结果。脑子里面想到了,当时前端帮我处理时说过一句话,这个代码块应该是引发 Wind Code模式,和 所见即所得 模式不能切换的问题。
<input type="checkbox" name="atc_convert" id="atc_convert" value="1" checked />Wind Code自動轉換<br />
当时也有一个问题,是代码模式切换预览时候,切换没有效果,后来发现是没有引入上面的参数设置。因而引入以后就行了。对这里很可疑,我因而想到,因而查看前端这个代码块,和后台这边的复制的代码块,发现对于使用使用html代码作了一个if判断,可是我复制的后端没有,会不会是这里引发的。因而我修改了这部分,发现切换后,对于换行便没有出现自动填充"<br>"的内容,因而我有点高兴。
<!-- EOT; if($gp_htmlcode){print <<<EOT --> <input type="checkbox" name="atc_html" id="atc_html" value="1" $htmcheck /><font face="verdana">使用HTML代碼</font> <!-- EOT; }else{print <<<EOT --> <font face="verdana">HTML 代碼不可用</font> <!-- EOT;
可是很快发现,又有一个新问题,那就是从新编辑内容是没有问题,若是刷新页面,使用以前帖子的内容,变仍是出现了换行自动补全<br>"的问题。我有点紧张,因而内心想前端和后台既然内容来自于同一个地方,那为何显示回不同呢,这,这应该是后端在获取数据的时候,作了某种处理,由于原始版本这里只是作展现,并无修改的功能,因此他的内容应该是有所处理,可是本次修改后,是须要展现原始内容,因此这个格式???
后端的数据的问题,后端,我多么熟悉的地方啊,个人世界,我心想。因而我点击content.php文件,查看内容这个字段,发现确实在这里作了换行处理,因而我注释掉这行代码,刷新页面。
$pw_tmsgs = GetTtable($id); $rt = $db->get_one("SELECT t.tid,t.fid,t.subject,tm.content,tm.ifconvert,t.is_video,t.video_info,t.video_status,t.video_urls,t.is_owner FROM pw_threads t LEFT JOIN $pw_tmsgs tm ON tm.tid=t.tid WHERE t.tid='$id'"); //去掉换行 //$rt['content'] = str_replace("\n","<br>",$rt['content']); //去掉解析 //$rt['content'] = convert($rt['content'],['pic'=>1,'iframe'=>1,'mpeg'=>1,'flash'=>1]);
最后测试,和前端的功能完整切合。
-----结束