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