前端學習中,我們經常會遇到寫的字符不太對想改變它的如果重新些可能太麻煩,這時候我們就要用到轉義字符串來改變。
顧名思義,所謂的轉義字符就是能夠改變字符原本意義的特殊字符。
在實際應用中,總有一些具有特殊含義的字符無法直接輸入,比如換行。
這時候轉義的字符的威力就得以顯現,代碼實例如下:
console.log(“網站名稱:\n興趣部落”);
我們無法直接在代碼中直接鍵入換行,使用\n即可實現換行功能。
n的原本意義就是字符”n”,但是加上反斜杠\之后,它就具有了換行功能。
一.轉義字符的定義:
轉義字符以反斜杠(\)開頭,后面可以是一個或者多個字符
它是一種特殊的字符常量,能夠表達與原本字符不同的特殊功能,也可以說失去原本的功能獲取另外的功能。
再來看一段常見的代碼實例:
console.log(“”轉義字符串”的定義”);
上述代碼,我們原本是想打印出”轉義字符串”的定義,但是會報錯。
因為前兩個引號會首先配對,于是就會導致錯誤。
解決方案一:
console.log(‘”轉義字符串”的定義’);
外層的雙引號用單引號替代,解決了配對問題。
解決方案二:
console.log(“\”轉義字符串\”的定義”);
雙引號在代碼中是有特殊意義,用以說明它所包裹的內容是字符串。
但是前面添加反斜杠之后,雙引號就失去了這個功能,而是將其作為普通字符使用。
HTML標簽相關的字符串格式化
string nl2br ( string $string )
nl2br() 就是將\n 替換成 <br> //javascript對\n才能夠執行換行,對</br>是不能執行換行
htmlspecialchars() 把一些預定義的字符轉換為 HTML 實體。
string htmlspecialchars(string,quotestyle,[character-set])
轉換以下字符及對應的實體
& (和號) 成為 &
" (雙引號) 成為 "
' (單引號) 成為 '
< (小于) 成為 <
> (大于) 成為 >
第二個參數: ENT_COMPAT 只轉換雙引號, 保留單引號, 為默認值 compat: 兼容性
ENT_QUOTES 同時轉換兩種引號 quotes: 引號
ENT_NOQUOTES 不對引號進行轉換
<html>
<body>
<?php
$str = "John & \" 'Adams'";
echo htmlspecialchars($str, ENT_COMPAT);
echo "<br />";
echo htmlspecialchars($str, ENT_QUOTES);
echo "<br />";
echo htmlspecialchars($str, ENT_NOQUOTES);
?>
</body>
</html>
輸出結果:John & " 'Adams'
John & " 'Adams'
John & " 'Adams'
htmlentities() 可以將所有的非ASCII碼字符轉換為對應的實體代碼;除字母、數字、\外, 漢字和鍵盤上其他字符都轉換
<?php
$str = "A 'quote' \" is <b>bold</b>" ;
echo htmlentities ( $str ); // 輸出后源代碼: A 'quote' is <b>bold</b>
echo htmlentities ( $str , ENT_QUOTES ); // 輸出后源代碼: A 'quote' is <b>bold</b>
?>
返回的結果:A 'quote' "is <b>bold</b>
A 'quote' "is <b>bold</b>
注意: htmlspecialchars()和htmlentities作用直接輸出HTML腳本
htmlspecialchars()和htmlentities()函數對于轉義字符"\"處理,不會轉義實體代碼,要么當轉義字符對待,要么原樣輸出;
PHP中htmlentities和htmlspecialchars的區別
這兩個函數的功能都是轉換字符為HTML字符編碼, 特別是url和代碼字符串。防止字符標記被瀏覽器執行。
使用中文時沒什么區別, 但htmlentities會格式化中文字符使得中文輸入是亂碼。
htmlentities轉換所有的html標記, htmlspecialchars只格式化& ' " < 和 > 這幾個特殊符號
addslashes() 在指定的預定義字符前添加反斜杠。
這些預定義字符是:單引號 (') 雙引號 (") 反斜杠 (\) NULL字符(\x00)
提示:該函數可用于為存儲在數據庫中的字符串以及數據庫查詢語句準備合適的字符串。
注釋:默認情況下,PHP 指令 magic_quotes_gpc 為 on,對所有的 GET、POST 和 COOKIE數據自動運行 addslashes()。
不要對已經被magic_quotes_gpc轉義過的字符串使用 addslashes(),因為這樣會導致雙層轉義。
遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測。(如:$c=(!get_magic_quotes_gpc())?addslashes($c):$c;)
在本例中,我們要向字符串中的預定義字符添加反斜杠:
<?php
$str = "Who's John Adams?";
echo $str . " This is not safe in a database query.<br />";
echo addslashes($str) . " This is safe in a database query.";
?>
輸出:
Who's John Adams? This is not safe in a database query.
Who\'s John Adams? This is safe in a database query.
<?php
header("Content-type:text/html; charset=utf-8");
$str = "wo are \x0a studying \x00 php";
echo $str;
echo "<br>";
echo addslashes($str);
?>
輸出:
wo are studying php
wo are studying >wo are studying \0 php< php
stripslashes() 刪除反斜線("\")
在提交的表單數據中 ' " \ 等字符前被自動加上一個\ ,這是配置文件php.ini中選項magic_quotes_gpc在起作用,
默認是打開的,如果不處理則將數據保存到數據庫時,有可能會被數據庫誤當成控制符號而引起錯誤。
通常htmlspecialchars()和stripslashes()函數復合的方式,聯合處理表單中的提交的數據htmlspecialchars(stripslashes())
strip_tags()
string strip_tags ( string $str [, string $allowable_tags ] )
剝去 HTML、XML 以及 PHP 的標簽。
<?php
echo strip_tags("Hello <b><i>world!</i></b>","<b>");
?>
輸出結果:Hello world!
實例:
<?php
$str = "<b>webserver;</b> & \ 'Linux' & Apache";
echo "$str"; //直接輸出
echo "<br/>";
echo htmlspecialchars($str,ENT_COMPAT); //只轉換雙引號,為默認參數
echo "<br />";
echo htmlspecialchars($str,ENT_NOQUOTES); //不對引號進行轉換
echo "<br />";
echo htmlspecialchars($str,ENT_QUOTES); //同時轉換單引號和雙引號
echo "<br />";
echo htmlentities($str); //將所有的非ASCII碼字符轉換為對應的實體代碼
echo "<br />";
echo addslashes($str); //將" ' \ 字符前添加反斜線
echo "<br />";
echo stripslashes($str); //刪除反斜線
echo "<br />";
echo strip_tags($str); //刪除<html>標記
?>
輸出結果:
webserver; & \ 'Linux' & Apache
為剛踏進js大門的新手,首先必須掌握js中有哪些常用的輸入輸出函數,下面我為大家介紹我們常用的4種輸入輸出函數,警告窗函數alert(),輸出函數document.write(),提示對話函數prompt(),confirm()函數。
1. 警告窗函數alert(“要輸出的信息”)
此函數只有一個參數,參數可以是字符串、變量或者表達式。如下:
(1) alert(“你喜歡JavaScript嗎”);
(2) var myName=“Jerry”;
alert(“大家好,\n我的名字是”+myName); //注意alert()函數中換行用轉義字符\n。同時要注意理解字符串和變量之間用”+”加號連接。
(3) alert(“10+5=”+(10+5)); //字符串和表達式之間用”+”加號連接
3種運行結果如下:
參數是字符串
參數是變量
參數是表達式
2. 輸出函數document.write(“要輸出的信息”)
此函數只有一個參數,直接輸出文字到HTML界面,這個函數的寫法是對象名.函數名()。document是js中的對象,引用此對象中的write方法,所以寫為document.write(“ ”).
(1) document.write(“你喜歡JavaScript嗎”);
(2) var myName=“Jerry”;
document.write(“大家好,<br/>我的名字是”+myName); //注意此函數中換行用<br/>
結果如下:
3.輸入函數prompt(“顯示的信息”,“輸入框中的默認值”)
此函數有2個參數,且函數返回的是字符串類型。
var color=prompt(“你最喜歡的顏色是:”,“紅色”); //用戶輸入的值賦值給變量color
alert(“你最喜歡的顏色是:”+color);
如果用戶單擊取消按鈕,此函數將返回NULL值。
如果直接點擊取消,出現:
如果在文本框中輸入:黑色,出現:
4.輸出函數confirm(“要輸出的信息”)
此函數只有一個參數。
confirm(“你要繼續游戲嗎”); //出現結果如下:
點擊“確定”,函數返回true;點擊“取消”,函數返回false.
今天就講到這里,歡迎有問題隨時咨詢我哦!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。