使用PHP转义字符串中的所有特殊字符

时间:2017-03-11 07:02:54

标签: php linux string

我想从输入字符串中转义所有特殊字符以处理shell命令。之后,给定的字符串应保存在DataBase中。

在PHP中,我试图使用以下代码转义所有代码,

$pattern = "/[_a-z0-9-]/i";
    $new_content = '';
    $content = 'My new string with symbols ₹~`!@#$%^&*()_+|{}<?>":[];/.,';
    for($i = 0; $i < strlen($content); $i++) {
        //if you found the 'special character' then add the \
        if(!preg_match($pattern, $content[$i])) {
            $new_content .= '\\' . $content[$i];
            }
        else {
        //if there is no 'special character' then use the character
            $new_content .= $content[$i];
        }
        }

    $keyvalue[1] = $new_content;

注意:

我设置shell以支持UTF-8字符 如果我使用键盘键入卢比符号,我的PHP无法识别它并显示这样的符号..最后我得到一个错过字符的字符串。

此处使用Shell命令将响应从PHP发送到Python

我正在使用PHP v 5.5.9的Linux系统

请让我知道你的想法:)

1 个答案:

答案 0 :(得分:0)

我会做类似的事情:

<?php
$pattern = "/[^_a-z0-9- ]/i";

 $content = 'My new string with symbols ₹~`!@#$%^&*()_+|{}<?>":[];/.,';
 $newcontent = preg_replace($pattern,'',$content);
 echo $newcontent;

打印:

  

带符号_

的新字符串