下面的代码不仅要删除一个反斜杠而不是两个反斜杠吗?但在输出中我看到2个反斜杠被删除。有人可以解释一下吗?
<?php
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
// Example
$array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));
$array = stripslashes_deep($array);
// Output
print_r($array);
?>
输出如下:
Array
(
[0] => f'oo
[1] => b'ar
[2] => Array
(
[0] => fo'o
[1] => b'ar
)
)
答案 0 :(得分:0)
由于字符串用双引号括起来,因此使用\的转义序列在上面的情况下按照this table (PHP manual)影响字符串\\表示\。
答案 1 :(得分:0)
这两个反斜杠实际上是一个单个字符。阅读有关逃离角色的信息。