我在UTF-8
中有non-printable space
的字符串,我需要将其替换为non-printable linebreak
类似str_replace(' ','<br />',$string);
,但non-printable characters
。
答案 0 :(得分:3)
如果您在引号之间键入特定字符,它确实有效:
str_replace(' ', '', $string)
^ ^^
put characters here
由于这可能有点难以键入和/或使源代码不那么明显,因此您可以用字节表示法编写这些字符串文字。只要弄清楚你正在谈论的具体角色以及它编码的字节数:
str_replace("\xE2\x80\xAF", "\x0A", $string)
这正在用常规换行符(E2 80 AF
)替换ZERO-WIDTH SPACE(UTF-8编码0A
)。在您选择的Unicode表中查找。可能使用echo bin2hex($string)
检查现有字符串,以确定它包含的字节数。
答案 1 :(得分:0)
如何:str_replace(' ' , PHP_EOL , $string);
甚至更好:str_replace( array( ' ', ' ' ) , PHP_EOL , $string);