|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #53956 Zero Width Space is not replaced by ordinary space
Submitted: 2011-02-08 10:45 UTC Modified: 2011-02-08 22:12 UTC
From: skyboy at mail dot ru Assigned:
Status: Not a bug Package: PCRE related
PHP Version: 5.3.5 OS: Ubuntu 10.10
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Bug Type:
From: skyboy at mail dot ru
New email:
PHP Version: OS:


 [2011-02-08 10:45 UTC] skyboy at mail dot ru
Group of zero width spaces is succesfully replaced by any character but ordinary space.

Test script:
$str = "​​‎​​‎​​‎"; // 27 zero width spaces with unicode code of u200B 
var_dump(preg_replace('#\s+#', $str, '-'));
var_dump(preg_replace('#\s+#', $str, ' '));

Expected result:
string(27) "​​‎​​‎​​‎" string(1) "-" string(1) "​​‎​​‎​​‎-" 

Actual result:
string(27) "​​‎​​‎​​‎" string(1) "-" string(27) "​​‎​​‎​​‎" 


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2011-02-08 11:15 UTC]
-Status: Open +Status: Bogus
 [2011-02-08 11:15 UTC]
Your arguments to preg_replace are swapped, ie:

preg_replace('#\s+#', $str, '-');

should be:

preg_replace('#\s+#', '-', $str);

Also note that Unicode zero width spaces aren't included in \s, but
you can match them directly with the u modifier (replace <200b> with
an actual zero width space character):

preg_replace('#<200b>+#u', '-', $str);

Not a bug: closing.
 [2011-02-08 21:40 UTC] skyboy at mail dot ru
oh!sorry for this. this is my mistake.
but why "zero width *space*" does not belong to [s]pace symbols' group?
 [2011-02-08 22:12 UTC]
You should ask the PCRE guys about that.
PHP Copyright © 2001-2022 The PHP Group
All rights reserved.
Last updated: Wed Jul 06 00:05:46 2022 UTC