我正在尝试向具有特殊字符的字符串添加反斜杠。
我的意见是:
db:xz~sf!fkd@djf#dfs$dlf%dks^kd&fkf*kdf(dls)kls-fls+fsd=slf_fls[fdf]fdf{ffl}sl|dkf\fsl'skfj
我的输出应该是:
db\:xz\~sf\!fkd\@djf\#dfs\$dlf\%dks\^kd\&fkf\*kdf\(dls\)kls\-fls\+fsd\=slf\_fls\[fdf\]fdf\{ffl\}sl\|dkf\\fsl\'skfj
我有以下代码片段,只用反斜杠字符替换特殊字符:
<?php
echo $string = "db:xz~sf!fkd@djf#dfs$dlf%dks^kd&fkf*kdf(dls)kls-fls+fsd=slf_fls[fdf]fdf{ffl}sl|dkf\fsl'skfj";
echo preg_replace('/[^A-Za-z0-9\-]/', '\\', $string);
有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
您可以使用:
$s = 'db:xz~sf!fkd@djf#dfs$dlf%dks^kd&fkf*kdf(dls)kls-fls+fsd=slf_fls[fdf]fdf{ffl}sl|dkf\fsl\'skfj';
echo preg_replace('/\W/', '\\\\$0', $s)
//=> db\:xz\~sf\!fkd\@djf\#dfs\$dlf\%dks\^kd\&fkf\*kdf\(dls\)kls\-fls\+fsd\=slf_fls\[fdf\]fdf\{ffl\}sl\|dkf\\fsl\'skfj