PHP:检查字符串是否包含软连字符并替换它

时间:2012-04-13 20:54:10

标签: php replace

我需要检查一个字符串是否包含一个软的超级,如果它确实是从字符串中删除它。有关找到它并在将字符串保存到数据库之前将其删除的最佳方法的任何建议吗?

谢谢!

4 个答案:

答案 0 :(得分:9)

这里的软连字符是不可见的,但这会删除它:

$str = str_replace('­', '', $str);

答案 1 :(得分:5)

您链接的软连字符(如果您的字符串是ISO 8859-1):

$str = strtr($str, array("\xAD" => ""));

否则你需要在你使用的编码中找到它的字节序列,为SOFT HYPHEN (U+00AD)提供一些用于常见字符集的值:

 \xAD      ISO-8859-1; ISO-8859-2; ISO-8859-3; ISO-8859-4; ISO-8859-5; 
           ISO-8859-6; ISO-8859-8; ISO-8859-9; ISO-8859-15; Windows 1250; 
           Windows 1251; Windows 1252; Windows 1253; Windows 1254; Windows 
           1255; Windows 1256; Windows 1257; Windows 1258

 \xF0      OEM 775; OEM 850; OEM 852; OEM 855; OEM 857; OEM 858;

 \xC2\xAD  UTF-8

答案 2 :(得分:4)

试试这个:

$str = str_replace('-','',$str);

答案 3 :(得分:2)

这里的答案都不适用于我。我能够删除软连字符的唯一方法是:

preg_replace('~\x{00AD}~u', '', $str);