原理很简单,正则查找字符串,然后替换
英文标点符号,正则中有专用的模式来匹配。中文则需要一一列举
代码:
<?php $str = "!@#$%^&*(中'文:;﹑•中'文中'文().,<>|[]'""; //中文标点 $char = "。、!?:;﹑•"…‘’“”〝〞∕¦‖— 〈〉﹞﹝「」‹›〖〗】【»«』『〕〔》《﹐¸﹕︰﹔!¡?¿﹖﹌﹏﹋'´ˊˋ―﹫︳︴¯_ ̄﹢﹦﹤‐˜﹟﹩﹠﹪﹡﹨﹍﹉﹎﹊ˇ︵︶︷︸︹︿﹀︺︽︾ˉ﹁﹂﹃﹄︻︼()"; $pattern = array( "/[[:punct:]]/i", //英文标点符号 '/['.$char.']/u', //中文标点符号 '/[ ]{2,}/' ); $str = preg_replace($pattern, ' ', $str); echo $str;