在php中删除任何字符,但不删除符号和字母
如何使用str_ireplace或其他函数删除HTML中常用的字符,而不是字母、数字或符号,如在php中删除任何字符,但不删除符号和字母,php,html,replace,Php,Html,Replace,如何使用str_ireplace或其他函数删除HTML中常用的字符,而不是字母、数字或符号,如:“;:.-+=…等。我还想删除/n、空格、制表符和其他 我需要那个文本,来自于doing(“textContent”)。IE10和Chrome中的innerHTML,其中一个php变量大小相同,而不管是哪个浏览器。因此,我需要在文本中使用相同的编码,并且删除罕见或不同的字符 我尝试过这个,但它对我不起作用: $textForMatch=iconv(mb_detect_encoding(
:“;:.-+=
…等。我还想删除/n、空格、制表符和其他
我需要那个文本,来自于doing(“textContent”)。IE10和Chrome中的innerHTML,其中一个php变量大小相同,而不管是哪个浏览器。因此,我需要在文本中使用相同的编码,并且删除罕见或不同的字符
我尝试过这个,但它对我不起作用:
$textForMatch=iconv(mb_detect_encoding($text, mb_detect_order(), true), "UTF-8", $text);
$textoForMatc = str_replace(array('\s', "\n", "\t", "\r"), '', $textoForMatch);
$text包含函数的结果(“textContent”)。innerHTML中,我想删除以下字符:�ó..最简单的选择是简单地使用preg_替换为白名单。也就是说,使用一个模式列出您想要保留的内容,并替换列表中不包含的任何内容:
$input = 'The quick brown 123 fox said "�é³". Man was I surprised';
$stripped = preg_replace('/[^-\w:";:+=\.\']/', '', $input);
$output = 'Thequickbrownfoxsaid"".ManwasIsurprised';
正则表达式解释
因此,这将删除任何不是单词、数字或正则表达式中列出的特定字符的内容。请参见。我认为您需要使用正则表达式。请检查:请添加一个真实的示例输入字符串和预期的输出字符串,但数字也不希望消除,因为需要更复杂的内容,因为有人物�é³@Martin正则表达式将匹配未明确列出的任何内容(我冒昧地对答案添加了一个简短的解释)。因此,要保留数字,请将
0-9
添加到列表中。其他所有内容都将替换为'
,即删除。您可能希望在表达式末尾添加utf-8修饰符,以确保替换非ascii字符。在正则表达式中的结束分隔符斜杠后添加u
。@Spudley,因为它是反向匹配-th没有必要。例如,输入快速布朗123狐狸说:こんにちは“.Man感到惊讶
outputQuickBrown123Fox说:”.Man感到惊讶
/ - start regex
[^ - Begin inverted character class, match NON-matching characters
- - litteral character
\w - Match word characters. Equivalent to A-Za-z0-9_
:";:+= - litteral characters
\. - escaped period (because a dot has meaning in a regex)
\' - escaped quote (because the string is in single quotes)
] - end character class
/ - end of regex