‘壹’ php转义字符
你说的应该是反引用转义字符
stripslashes();
或者stripcslashes();
‘贰’ PHP如何去掉转义
string addslashes ( string str) 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。
这些字符是单引号(\')、双引号(\")、反斜线(\\)与 NUL(NULL 字符) stripslashes作用相反在处理mysql和GET、POST的数据时,常常要对数据的引号进行转义操作。 PHP中有三个设置可以实现自动对’(单引号),”(双引号),\\(反斜线)和 NULL 字符转移。 PHP称之为魔术引号,这三项设置分别是 magic_quotes_gpc 影响到 HTTP 请求数据(GET,POST 和 COOKIE)。
不能在运行时改变。在 PHP 中默认值为 on。 magic_quotes_runtime 如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。该选项可在运行的时改变,在 PHP 中的默认值为 off。 magic_quotes_sybase 如果打开的话,将会使用单引号对单引号进行转义而非反斜线。
此选项会完全覆盖 magic_quotes_gpc。如果同时打开两个选项的话,单引号将会被转义成 ”。而双引号、反斜线 和 NULL 字符将不会进行转义。
虽然方便的实现了对特殊符号的自动转义,但是这样会使得程序效率降低,并导致程序可移植变得麻烦。在不知道服务器ini设置的情况下,还需要调用get_magic_quotes_gpc() ,get_magic_quotes_runtime() 或ini_get()来检测状态。使用stripslashes去掉转义
‘叁’ PHP 字符转义 正规
$str = "[emt2],[emt20],[emt20],[emt50],[emt61]";
function __callback($ary){
return "<img src='admin/upimages/" . ( intval(substr($ary[0],4)) > 60 ? 0 : intval(substr($ary[0],4)) ) . ".jpg'>";;
}
echo preg_replace_callback('/\[emt\d{1,2}\]/i' , '__callback' , $str);
‘肆’ php 转义字符
echo "<tr><td><a href=\"$_SERVER['PHP_SELF']?id=1\">上一页</a><a href=\"$_SERVER['PHP_SELF']?id=2\">下一页</a></td></tr>";
还是不对,数组特殊,应该如下:
<?php
echo "<tr><td><a href=\"{$_SERVER['PHP_SELF']}?id=1\">上一页</a><a href=\"{$_SERVER['PHP_SELF']}?id=2\">下一页</a></td></tr>";
?>
‘伍’ 请问php中的转义字符是什么 能详细说一下吗
在php中:
* 以单引号为定界符的php字符串,支持两个转义\'和\\
* 以双引号为定界符的php字符串,支持下列转义:
\n 换行(LF 或 ASCII 字符 0x0A(10))
\r 回车(CR 或 ASCII 字符 0x0D(13))
\t 水平制表符(HT 或 ASCII 字符 0x09(9))
\\ 反斜线
\$ 美元符号
\" 双引号
\[0-7]{1,3} 此正则表达式序列匹配一个用八进制符号表示的字符
\x[0-9A-Fa-f]{1,2} 此正则表达式序列匹配一个用十六进制符号表示的字符
举几个例子:
一个包含\0特殊字符的例子:
$str = "ffff\0ffff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
输出结果:
----------------------
9
102 102 102 102 0 102 102 102 102
替换特殊字符的例子
$str = "ffff\0ffff";
$str = str_replace("\x0", "", $str);
//或者用$str = str_replace("\0", "", $str);
//或者用$str = str_replace(chr(0), "", $str);
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
输出结果:
----------------------
8
102 102 102 102 102 102 102 102
八进制ascii码例子:
//注意,符合正则\[0-7]{1,3}的字符串,表示一个八进制的ascii码。
$str = "\0\01\02\3\7\10\011\08\8"; //这里的\8不符合要求,被修正为"\\8" (ascii为92和56)
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
输出结果:
----------------------
11
0 1 2 3 7 8 9 0 56 92 56
十六进制ascii码例子:
$str = "\x0\x1\x2\x3\x7\x8\x9\x10\x11\xff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
输出结果:
----------------------
10
0 1 2 3 7 8 9 16 17 255
‘陆’ PHP如何处理转义的问题。
$str = "aasdf|asdas\\1022";
这样
‘柒’ php转义字符,这是什么意思
\的意思是转义
如果你双引号里要出现双引号是不行的,所以要转义
比如:\"就是相当于'
(转义双引号等于单引号)
\'等于'
(转义单引号等于单引号)
你这段的意思是:执行循环,次数为3次。循环输出表格的列(align=\ "center \设定为居中)。img是 图片,scr是图片位置,位置是数组 $pictures的第$i个(根据循环次数来定)
echo " \ " /></td>"; \ " />是img的结束标记 </td>是列的结束标记
不过我感觉程序有点问题。。
‘捌’ PHP转义字符
中括号的内容是匹配的东西,^> 的意思是匹配所有,除了>这个符号,后面的+意思是前面的东西出现至少1次, 那么 <[^>]+> 这个模式就是匹配所有的html标签比如<a>,<div>,<tb>等等, 后面那个 </[^>]+> 就是匹配</a>,</div>,</tb>这些结束标签
中间圆括号括起来的就是这个表达式想要抓取的内容,一点 . 的意思是所有字符,*和加号+一样是重复次数,不同的是*号意思是出现0次或以上次数
总的来说这个表达式就是匹配HTML标签中间的内容,也就是去掉HTML标签的作用,其实要达到这个效果不需要这么麻烦,有一个函数可以做这个事情
strip_tags()
‘玖’ php里有没有转义php代码的函数,如把<php >转义为转义字符
<?php
$new=htmlspecialchars("<ahref='test'>Test</a>",ENT_QUOTES);
echo$new;//<ahref='test'>Test</a>
?>
使用这个函数吧 htmlspecialchars
‘拾’ php 转义字符 \t 怎么用啊
\t \n 等是为了向操作系统的文本字符表示方式兼容。而echo print 之类的是输出为HTML标记,所以浏览器解析的时候会使这些字符换成了空格。在HTML里没有制表符的特殊字符表示,只有在<pre>标签里才会保留制表符。例如:echo "<pre>"."s\tsid\na"."<pre>";