Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中删除任何字符,但不删除符号和字母_Php_Html_Replace - Fatal编程技术网

在php中删除任何字符,但不删除符号和字母

在php中删除任何字符,但不删除符号和字母,php,html,replace,Php,Html,Replace,如何使用str_ireplace或其他函数删除HTML中常用的字符,而不是字母、数字或符号,如:“;:.-+=…等。我还想删除/n、空格、制表符和其他 我需要那个文本,来自于doing(“textContent”)。IE10和Chrome中的innerHTML,其中一个php变量大小相同,而不管是哪个浏览器。因此,我需要在文本中使用相同的编码,并且删除罕见或不同的字符 我尝试过这个,但它对我不起作用: $textForMatch=iconv(mb_detect_encoding(

如何使用str_ireplace或其他函数删除HTML中常用的字符,而不是字母、数字或符号,如
:“;:.-+=
…等。我还想删除/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感到惊讶
output
QuickBrown123Fox说:”.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