-----是爲題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]);
最後測試,和前端的功能完整切合。
-----結束