php转义字符问题(php特殊字符转义)

发布时间:2022-11-10

本文目录一览:

  1. php 转义字符
  2. 如何在PHP中转义正则表达式字符
  3. 请问php中的转义字符是什么 能详细说一下吗
  4. php转义字符,这是什么意思?
  5. php转义字符
  6. php转义字符怎么用?echo "gde/n/r/t/v hdiiri";这样有什么不对么?为什么没有换行和tab?解释清楚点

php 转义字符

echo "trtda href=\"$_SERVER['PHP_SELF']?id=1\"上一页/aa href=\"$_SERVER['PHP_SELF']?id=2\"下一页/a/td/tr";

还是不对,数组特殊,应该如下:

echo "trtda href=\"{$_SERVER['PHP_SELF']}?id=1\"上一页/aa href=\"{$_SERVER['PHP_SELF']}?id=2\"下一页/a/td/tr";

如何在PHP中转义正则表达式字符

在PHP中,实现转义正则表达式字符的函数是:preg_quote函数。语法如下:

String preg_quote(string str[, string delimiter])

str是用来进行字符转义的正则表达式,delimiter是其他需要转义的字符。 在PHP中可以使用preg_quote函数转义一些特殊字符。 例如:

$str = preg_quote("/\d{3}(\-\d{4})/");
echo $str;

结果:

/\\d\{3\}\-d{4}\-d{4}/
$str = preg_quote("/\d{3}(\-\d{4})/", "3");
echo $str;

结果:

/\\d\{\3\}\-d{4}\-d{4}/

这两个例子有什么区别呢? 就是红色区域中的“3”,在第二个例子中将“3”也转义出了。

请问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码例子:

$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转义字符,这是什么意思?

\ 的意思是转义。 如果你双引号里要出现双引号是不行的,所以要转义。 比如:\" 就是相当于 "。 (转义双引号等于单引号) \' 等于 '。 (转义单引号等于单引号) 你这段的意思是:执行循环,次数为3次。循环输出表格的列(align="center" 设定为居中)。img 是图片,src 是图片位置,位置是数组 $pictures 的第 $i 个(根据循环次数来定)。

echo "<td align=\"center\"><img src=\"".$pictures[$i]."\"></td>";

不过我感觉程序有点问题。。

php转义字符

用来表示一些无法输入的字符,或者输入后不明显,或者容易被编辑器替换的字符。 例如:

  • \r 表示回车
  • \n 表示换行
  • \$ 表示一个 $ 符号,直接在PHP的字符串里面写 $ 容易被误会为变量。

php转义字符怎么用?echo "gde/n/r/t/v hdiiri";这样有什么不对么?为什么没有换行和tab?解释清楚点

使用反斜杠转义,被转义过的特殊符号就会被当成字符串输出。比如单引号里面要输出单引号,如果 $string = 'this's a string'; 这样就会报错,要把 this 后面的单引号转义下,PHP就会把它当字符串输出,而不是当作字符串的边界了。$string = 'this\'s a string'; 在PHP中,\0(NULL),\r(回车符),\n(换行符),\t(制表符即 Tab) \t\n 等是为了向操作系统的文本字符表示方式兼容。而 echoprint 之类的是输出为HTML标记,所以浏览器解析的时候会使这些字符换成了空格。在HTML里没有制表符的特殊字符表示,只有在 <pre> 标签里才会保留制表符。例如:

echo "<pre>a\tb\nc</pre>";