PHP中動態HTML的輸出技術詳解
PHP中動態HTML的輸出技術,你是否知道呢?可以在php程序中的任何地方使用,就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!
echo "hello world!";
來輸出你想輸出的內容。
不過你將遇到以下麻煩:
當你試圖在hello和world之間加入兩個(或兩個以上)空格,
你使用:
echo "hello world!";
你得到的輸出還是一個空格,或者你在行首加入一個空格,
你的空格也將被忽略。
更糟的是輸出用户輸入的內容時,有心或無意的用户輸入將
使你的輸出變的一團糟,甚至給其他用户帶來麻煩。
比如:
<form action="">
<textarea name="in_txt">
</textarea>
<br>
<input type="submit">
</form>
如果用户輸入中有不止一行的'內容,那麼你如果簡單地
echo $in_txt;
用户的換行將被忽略。
還是上面的例子,大部分情況我們不希望用户輸入html
代碼,因為你不知道用户會輸入什麼。
用户甚至可以寫一段代碼使你網站所有的用户死機。
當然你不希望那樣,但是你如果簡單地
echo $in_txt;
就不可能避免。
解決方法:
對於1,可以使用ereg_replace(" {2}","$nbsp; ",$in_txt)
兩個在一起的空格將變成兩個空格的轉義符($nbsp)。
對於2,nl2br($in_txt)是最好的選擇,這樣所以的換行就換成
"<br>"了。
對於3,安全地顯示用户輸入的html代碼,php中也有專門的函數。
htmlspecialchars($in_txt)就可以了。
另外,如果$in_txt是從mysql數據庫中提出的,那麼他在以前插入時
一定要使用addslashes(),相應的,取出時就一定要stripslashes()。
總結:
如果$in_txt是用户輸入的文本,一般可以這樣輸出:
echo ereg_replace(" {2}"," ",nl2br(htmlspecialchars(stripslashes($in_txt))));
-
PHP緩存技術
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。最重要的是PHP可以用C、C++進行程序的擴展!以下是小編為大家搜索整理的PHP緩存技術,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!全頁面靜態...
-
PHP中超全局變量$GLOBALS和global的區別
人之所以能,是相信能。努力總是會有收穫的。下面是小編整理的PHP中超全局變量$GLOBALS和global的區別,希望對大家有用,更多消息請關注應屆畢業生網。一、超全局變量$GLOBALSPHP超全局變量有很多,如下的都屬於超全局變量(Superglobal):$GLOBALS,$_SERVER,$_GET,$_POST,$_...
-
PHP的漏洞-如何防止PHP漏洞
漏洞無非這麼幾類,XSS、sql注入、命令執行、上傳漏洞、本地包含、遠程包含、權限繞過、信息泄露、cookie偽造、CSRF(跨站請求)等。下面是小編為大家帶來的關於PHP的漏洞的知識,歡迎閲讀。+sql注入其中佔大頭的自然是XSS與SQL注入,對於框架類型或者有公共文件的,建...
-
PHP中用CURL偽造IP來源的方法
PHP中用CURL偽造IP來源的.方法,有需要的朋友可以看看。就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!1.文件複製代碼代碼如下:<?php$ch=curl_init();curl_setopt($ch,CURLOPT_URL,"http://localhost/");curl_setopt($ch,CURL...