diff options
-rw-r--r-- | ext/standard/string.c | 5 | ||||
-rw-r--r-- | ext/standard/tests/strings/bug53319.phpt | 17 |
2 files changed, 19 insertions, 3 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c index abd33d6ee8..e39b0cb6ec 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -4210,9 +4210,8 @@ int php_tag_find(char *tag, int len, char *set) { if (!isspace((int)c)) { if (state == 0) { state=1; - if (c != '/') - *(n++) = c; - } else { + } + if (c != '/') { *(n++) = c; } } else { diff --git a/ext/standard/tests/strings/bug53319.phpt b/ext/standard/tests/strings/bug53319.phpt new file mode 100644 index 0000000000..0bcc06d5ec --- /dev/null +++ b/ext/standard/tests/strings/bug53319.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #53319 (Strip_tags() may strip '<br />' incorrectly) +--FILE-- +<?php + +$str = '<br /><br />USD<input type="text"/><br/>CDN<br><input type="text" />'; +var_dump(strip_tags($str, '<input>')); +var_dump(strip_tags($str, '<br><input>') === $str); +var_dump(strip_tags($str)); +var_dump(strip_tags('<a/b>', '<a>')); + +?> +--EXPECTF-- +string(47) "USD<input type="text"/>CDN<input type="text" />" +bool(true) +string(6) "USDCDN" +string(0) "" |