echo"value={$a[$i][$j]}"//挨印两维数组$a的某个元素
$sql="selectfromuserswherelast_name=".addslashes($last_name)."";
$sql=selectfromuserswherelast_name=\.addslashes($last_name).\;
4、双引号和HTML
正在字符串中援用复纯的变量组开时,大概会收生一些题目,下里的代码会正常事情:
与SQL语句差别,正在尺度HTML说话中双引号常被用来透露表现字串(现正在良多阅读用具有较强的容错功效,许可正在HTML顶用单引号乃至不消引号透露表现字符串),例如:
号。单引号串可以用正在其他任那边所,剧本中利用单引号串处置速度会更快些,由于PHP语法剖析器对
任什么时候候你要正在数据库中写进字串,你都必需确保里里的引号准确利用了转义符号,那是良多PHP初学者常犯的毛病。
生成HTML代码或SQL查询语句是编写PHP法式经常常碰到并且是件风趣的工作。为何那么说呢,由于那触及到生成别的一品种型的代码,你必需认真地思索和遵守那类代码所要求的编写语法和法则。
echo"value=$a[$i][$j]";//我们希看挨印两维数组$a的某个元素。
echo"value=$a[$i]";
3、斜杠和SQL语句
HTML说话不撑持反斜杠转义,那一点正在我们利用表单的hiddeninputs来传输数据的时间就会有所体味了。设置hiddeninputs的值的最好法子,是利用htmlspecialchars()函数来编码。下里的语句可以正常传输一个大概包罗双引号的数据:
度略缓。
如:/r/n是换行,然则若是你用单引号写进文件,不会是换行,而是一个字符,若是用双引号写进文件,就是换行.
echo"value=$foo";
echovalue=.$a[$i][$j];
那个...双引号转义,单引号不转义
引号\)。所以,当你想正在字串中停止变量代换和包罗\n(换行符)等转义序列时,你应当利用双引
$html=<ahref=".$url.">.$link.</a>;
为制止那些字串利用中的潜正在题目,我们凡是是把复纯的变量从字串仄分脱离来,就像如许:
1、引号界说字符串。要到达包罗引号的目标,必需剖析器正在碰到串内通俗引号的时间疏忽它的本意,我们正在引号的前里加上一个反斜杠来报告PHP:那个引号是字符串的一部门,准确的透露表现圆式是如许:单引号串可以用正在其他任那边所,剧本中利用单引号串处PHP教程:网站开发编程中的特殊符号处理置速度会更快些,由于PHP语法剖析器对单引号串的处置体例比力纯真,而双引号的处置果为串内部也需要剖析,是以更复纯些,所以处置速度略缓。
echo"value=\{$var}";//挨印后果"value={3}"
正在那个例子中,你还要正在last_name字串中里括上单引号(SQL语法要求),果为那里利用的是双引号串,所以对那对单引号就不必利用转义了。下里的那个语句是利用单引号串的等价情势:
$last_name="OKeefe";
我们来看如许一个例子,假设你想查询数据库中名字是“OKeefe”的用户,凡是是SQL语句的情势是如许的:
而下里的代码却不克不及获得我们希看的后果:
单引号串的处置体例比力纯真,而双引号的处置果为串内部也需要剖析,是以更复纯些,所以处置速
<inputtype=hiddenname=varvalue="<?phpechohtmlspecialchars($var)?>">
$var=3;
还有一种法子是将复纯变量用花括号括起来,语法剖析器就可以准确识别了:
如许,又呈现新题目了。当我们想正在字串中援用花括号字符自己时,就要记得利用转义符了:
请注重SQL语句那个英文所有格(撇号)需利用反斜杠转义。PHP专门供给了一些函数来处置如许的环境,函数AddSlashes($str)的用处就是主动正在字串中对引号字符插进反斜杠转义符:
echo"value={$var}";//挨印后果"value=3"
selectfromuserswherelast_name=O\Keefe
$html="<ahref=\"$url\">$link</a>";
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交