2012-04-13 24 views
2

我需要检查一个字符串是否包含软式炒作,以及它是否将其从字符串中移除。有关在将字符串保存到数据库之前找到它并将其删除的最佳方法的建议?PHP:检查字符串是否包含软式炒作并将其替换

谢谢!

+0

您是否检查过PHP文档? http://us.php.net/manual/en/book.strings.php – Madbreaks 2012-04-13 21:00:24

回答

9

软连字符是无形这里,但这将其删除:

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

工作。谢谢! – anthony 2012-04-13 21:05:07

+0

@anthony没问题:)你可能想要很好地评论这条线,或者使用hakre的答案来使代码更加清晰。 – Paulpro 2012-04-13 21:07:52

4

试试这个:

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

这适用于普通的连字符,但它没有找到在这里提到的软式炒作:http://en.wikipedia.org/wiki/Soft_hyphen。 – anthony 2012-04-13 21:00:48

5

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

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

否则你需要找到它的字节序列i n您使用的编码,一些值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

的答案都不在这里为我工作。我能够删除软连字符的唯一方法是:

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