我从db中调用了我的数据,其中包含'
的单词company's
,有些单词显示为company\\\\\'s
,尽管我有一个函数将所有这些特殊字符替换为普通字符,但像company\'s
这样的措辞仍然存在。有没有正确的方法来正确替换所有类型的特殊字符?
function chrEncode($data) {
$data = str_replace('’', ''' ,$data);
$data = str_replace('é', 'é' ,$data);
$data = str_replace('â€', '-' ,$data);
$data = str_replace('-œ', '"' ,$data);
$data = str_replace('“', '"' ,$data);
$data = str_replace('ê', 'ê' ,$data);
$data = str_replace('ö', 'ö' ,$data);
$data = str_replace('…', '...' ,$data);
$data = str_replace('-¦', '...' ,$data);
$data = str_replace('–', '–' ,$data);
$data = str_replace('′s', '’' ,$data);
$data = str_replace('-²s', '’' ,$data);
$data = str_replace('‘', ''' ,$data);
$data = str_replace('-˜', ''' ,$data);
$data = str_replace('-“', '-' ,$data);
$data = str_replace('è', 'è' ,$data);
$data = str_replace('(', '(' ,$data);
$data = str_replace(')', ')' ,$data);
$data = str_replace('•', '•' ,$data);
$data = str_replace('-¢', '•' ,$data);
$data = str_replace('§', '•' ,$data);
$data = str_replace('®', '®' ,$data);
$data = str_replace('â„¢', '™' ,$data);
$data = str_replace('ñ', 'ñ' ,$data);
$data = str_replace('Å‘s', 'ő' ,$data);
$data = str_replace('\\\"', '"' ,$data);
$data = str_replace("\r", '<br>' ,$data);
$data = str_replace("\\r", '<br>' ,$data);
$data = str_replace("\n", '<br>' ,$data);
$data = str_replace("\\n", '<br>' ,$data);
$data = str_replace("\\\'", ''' ,$data);
$data = str_replace("'", "'" ,$data);
return $data;
}
请指教,谢谢!
答案 0 :(得分:2)
有一个内置的php函数stripslashes
echo stripslashes($data);
答案 1 :(得分:2)
您可以使用preg_replace删除所有特殊字符,如下所示:
preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '', $String);
或仅用于斜杠:
$str = 'h///e/ll\\o\\//\\';
str_replace(array('\\', '/'), '', $str); // output hello
另一个解决方案: - 创建一个干净的功能
function clean($string) {
$string = str_replace('', '-', $string); // Replaces all spaces with hyphens.
return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
}
用法: -
echo clean('a|"bc!@£de^&$f g');
将输出:abcdef-g
答案 2 :(得分:1)
您可以在mysql_real_escape_string()
或insert
时使用update
功能,而不必替换'
,quot
等特殊字符。< / p>
答案 3 :(得分:1)
这是你需要使用额外的反斜杠来逃避它们的特殊字符
str_replace("\\","", $data);
答案 4 :(得分:1)
stripslashes需要摆脱斜线......
$str = "Is your name O\'reilly?";
// Outputs: Is your name O'reilly?
echo stripslashes($str);