前端学习中,我们经常会遇到写的字符不太对想改变它的如果重新些可能太麻烦,这时候我们就要用到转义字符串来改变。
顾名思义,所谓的转义字符就是能够改变字符原本意义的特殊字符。
在实际应用中,总有一些具有特殊含义的字符无法直接输入,比如换行。
这时候转义的字符的威力就得以显现,代码实例如下:
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小时内与您取得联系。