好的我已经阅读了许多帖子,并找到了一些可行的选项,但现在我只是比任何事情更好奇......
尝试删除以下字符时,因为谷歌在XML产品Feed中不喜欢它们。
为什么这样做:
但这两个都没有吗?
$string = preg_replace("/[^[:print:]]+/", ' ', $string);
$string = preg_replace("/[^[:print:]]/", ' ', $string);
将这一切放在上下文中是完整的功能:
// Remove all unprintable characters
$string = ereg_replace("[^[:print:]]", ' ', $string);
// Convert back into HTML entities after printable characters removed
$string = htmlentities($string, ENT_QUOTES, 'UTF-8');
// Decode back
$string = html_entity_decode($string, ENT_QUOTES, 'UTF-8');
// Return the UTF-8 encoded string
$string = strip_tags(stripslashes($string));
// Return the UTF-8 encoded string
return utf8_encode($string);
}
答案 0 :(得分:0)
代码不起作用的原因是因为它删除了不在posix:print:字符组中的字符,该字符组由可打印字符组成。 áÉ等都是可打印的。
您可以找到more about posix sets here。
此外,删除突出显示的字符可能并非总是最佳选择...请查看this question以了解替代方案。