php:细说PHP之稿子发布操作实2
php:细说PHP之文章发布操作实2
然后我们来看看,最核心的acticle_class.php怎么运作。
<?php class Acticle { //声明一个文章类,其中有两个成员属性标题和内容,如果需要还可以更多 private $subject; //文章的标题成员属性 private $message; //文章的主本内容成员属性 //构造方法,通过传入文章标题和文章主体和文章的操作选项数组创建文章对象 function __construct($subject=" ",$message=" ", $parse=array()) { $this->subject=$this->html2Text($subject); //为文章标题赋初值,将HTML标记转为实体 if(!empty($parse)) { //如果用户选择了对文章的操作选项则条件成功 foreach($parse as $value) { //用户选择了几个文章操作选项则循环几次 switch($value) { //根据用户选择的不同选项,调用不同的内部方法处理 case 1: //如果用户选择“删除HTML标签”选项时条件成立 $message=$this->delHtmlTags($message); break; case 2: //如果选择“转换HTML标签为实体”选项时条件成立 $message=$this->html2Text($message); break; case 3: //如果用户选择“使用UBB代码”选项时条件成立 $message=$this->UBBCode2Html($message); break; case 4: //如果用户选择“开启URL识别”选项时条件成立 $message=$this->parseURL($message); break; case 5: //如果用户选择“使用表情”选项时条件成立 $message=$this->parseSmilies($message); break; case 6: //如果用户选择“禁用非法关键字”选项时条件成立 $message=$this->disableKeyWords($message); break; case 7: //如果用户选择“PHP代码设为高亮”选项时条件成立 $message=$this->prasePHPCode($message); break; case 8: //如果用户选择“原样显示”选项时条件成立 $message=$this->prasePer($message); break; case 9: //如果用户选择“同步换行”选项时条件成立 $message=$this->nltobr($message); break; } } } $this->message=$message; //给成员属性$message赋初值, } private function delHtmlTags($message) { //此私有方法有来删除HTML标记 return strip_tags($message); //调用字符串处理函数删除HTML标记 } private function html2Text($message) { //此私有方法有来将HTML标记转为HTML实体 return htmlSpecialChars(stripSlashes($message)); //调用字符串处理函数进行操作 } private function UBBCode2Html($message) { //此私有方法有来解析UBB代码 $pattern=array('/\[b\]/i', '/\[\/b\]/i', '/\[i\]/i', //声明正则表达式的模板数组 '/\[\/i\]/i', '/\[u\]/i', '/\[\/u\]/i', '/\[font=([^\[\', '', '<i>', //声明正则表达式的替换数组 '</i>', '<u>', '</u>', '<font face="\\1">', '<font color="\\1">', '<font size="\\1">', '<font style='\"font-size:'>', '<p align="\\1">', '<a href="http://www.%5C%5C1" target="_blank">\\2</a>', '<a href="%5C%5C1://%5C%5C2" target="_blank">\\3</a>', '<a href="mailto:%5C%5C1@%5C%5C2">\\1@\\2</a>', '<a href="mailto:%5C%5C1@%5C%5C2">\\3</a>', '<img src="/static/imghw/default1.png" data-src="\\1" class="lazy" alt="php:细说PHP之稿子发布操作实2" >', '</p></font>', '</font>', '</font>', '' ); return preg_replace($pattern, $replace, $message); //调用正则表达式的替换函数 } private function cuturl($url) { //此私有方法用来剪切长的URL,并加上链接 $length = 65; $urllink = "<a href="%5C%22%22.(substr(strtolower(%24url)," : target="_blank">'; if(strlen($url) > $length) { //如果URL长度大于65则剪切 $url = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3)); } $urllink .= $url.'</a>'; return $urllink; } private function parseURL($message) { //此私有方法用来解析URL,将其加上链接$urlPattern="/(www.|https?:\/\/|ftp:\/\/|news:\/\/|telnet:\/\/){1}([^\[\"']+?)(com|net|org)(\/[\w-\.\/\?\%\&\=]*)?/ei"; return preg_replace($urlPattern, "\$this->cuturl('\\1\\2\\3\\4')", $message); } private function parseSmilies($message) { //此方法用来解析表情 $pattern=array('/:\)|\/wx|微笑/i', //声明表情的正则表达式模板数组 '/:@|\/fn|发怒/i', '/:kiss|\/kill|\/sa|示爱/', '/:p|\/tx|偷笑/i', '/:q|\/dk|大哭/i' ); $replace=array('<img src="/static/imghw/default1.png" data-src="smilies/smile.gif" class="lazy" alt="微笑">', //声明表情的替换数组 '<img src="/static/imghw/default1.png" data-src="smilies/huffy.gif" class="lazy" alt="发怒">', '<img src="/static/imghw/default1.png" data-src="smilies/kiss.gif" class="lazy" alt="示爱">', '<img src="/static/imghw/default1.png" data-src="smilies/titter.gif" class="lazy" alt="偷笑">', '<img src="/static/imghw/default1.png" data-src="smilies/cry.gif" class="lazy" alt="大哭">'); return preg_replace($pattern, $replace, $message); //调用正则表达式的替换函数 } private function disableKeyWords($message) { //此方法用来屏蔽文章中的非法关键字 $keywords_disable=array("非法关键字一","非法关键字二","非法关键字三"); return str_replace($keywords_disable,"**",$message); } private function prasePHPCode($message) { //此方法用来将PHP代码设置为高亮 $pattern='/()/ise'; $replace='"<pre style="max-width:90%"background:#ddd\"'>".highlight_string("\\1",true)."
标记 return '<pre class="brush:php;toolbar:false">'.$message.'
标记 return nl2br($message); //调用字符串处理函数nl2br() } public function getSubject() { //此方法为公有的,返回文章的标题 return '
'.$this->subject.'
'; } public function getMessage() { //此方法为公有的,返回文章的主体内容 return $this->message; } }?>该类主要内容就是它的构造方法,遍历parse数组里面的每一项,对message做一次处理。基本上都是直接调用php自带的字符串的处理函数,还有问题就是利用正则表达式替换。
preg_replace($pattern, $replace, $message),第一个参数表示正则表达式模式数组,第二个参数表示将这个遇到正则表达式替换后的内容,也是数组,两者应该是一一对应的。
正则表达式基本上就是/XXXXXX /yyy 以/... /表示分隔,yyy表示匹配参数 中间有|表示或,具体可以自己参考网上资料或者书。常常用在我们的用户登录上。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅動程式:不相容的驅動程式可能會幹擾截圖工具。來自其他應用程式的干擾:其他正在運行的應用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導致此issu簡單的解決方案這些適合大多數用戶,不需要任何特殊的技術知識。 1.更新視窗與Microsoft應用程式商店應用程

vue3使用element-plus呼叫message環境:vue3+typescript+element-plus1.全局引入element之後element已經在app.config.globalProperties添加了全局方法$message所以在optionsAPI中可以直接使用mounted(){(thisasany). $message.success("this.$message");}2.在CompositionAPI中setup方法傳入了兩個變數props和

第1部分:初始故障排除步驟檢查蘋果的系統狀態:在深入研究複雜的解決方案之前,讓我們先從基礎知識開始。問題可能不在於您的設備;蘋果的伺服器可能會關閉。造訪Apple的系統狀態頁面,查看AppStore是否正常運作。如果有問題,您所能做的就是等待Apple修復它。檢查您的網路連接:確保您擁有穩定的網路連接,因為「無法連接到AppStore」問題有時可歸因於連接不良。嘗試在Wi-Fi和行動數據之間切換或重置網路設定(「常規」>「重置」>「重置網路設定」>設定)。更新您的iOS版本:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

watch4pro和gt各自具有不使用的特點和適用場景,如果注重功能的全面性、高性能和時尚外觀,同時願意承擔較高的價格,那麼Watch 4 Pro可能更適合。如果對功能要求不高,更注重電池續航力和價格的合理性,那麼GT系列可能更適合。最終的選擇應根據個人需求、預算和喜好來決定,建議在購買前仔細考慮自己的需求,並參考各種產品的評測和比較,以做出更明智的選擇。

如何使用iPadOS17.4优化iPad电池寿命延长电池续航时间是移动设备体验的关键,iPad是一个很好的例子。如果您觉得iPad电池消耗速度过快,不用担心,在iPadOS17.4中有许多技巧和调整可以显著延长设备的运行时间。本深入指南的目标不仅仅是提供信息,而是改变您使用iPad的方式,增强您的整体电池管理,并确保您可以在无需充电的情况下更长时间地依赖您的设备。通过采用此处概述的做法,您朝着更高效、更谨慎地使用技术迈出了一步,这些技术是根据您的个人需求和使用模式量身定制的。识别主要的能量消耗者

请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?http://127.0.0.1/myo/newuser.php?mod=search&type=fastone比如现在我要修改mod=new要怎么做呢?------解决方案--------------------发送了请求
