Reputation: 244
I am trying to add a back slash to a string having special character.
My input is:
db:xz~sf!fkd@djf#dfs$dlf%dks^kd&fkf*kdf(dls)kls-fls+fsd=slf_fls[fdf]fdf{ffl}sl|dkf\fsl'skfj
And my output should be:
db\:xz\~sf\!fkd\@djf\#dfs\$dlf\%dks\^kd\&fkf\*kdf\(dls\)kls\-fls\+fsd\=slf\_fls\[fdf\]fdf\{ffl\}sl\|dkf\\fsl\'skfj
And I have the following piece of code which is only replacing the special character with the back slash character:
<?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);
So could someone help me regarding this?
Upvotes: 0
Views: 2578
Reputation: 784938
You can use:
$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
Upvotes: 3