Просмотр исходного кода

[ZF-10119] Zend_Filter:

- performance improvement for stripping comments

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@22547 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 15 лет назад
Родитель
Сommit
f76d49b24d
2 измененных файлов с 21 добавлено и 1 удалено
  1. 1 1
      library/Zend/Filter/StripTags.php
  2. 20 0
      tests/Zend/Filter/StripTagsTest.php

+ 1 - 1
library/Zend/Filter/StripTags.php

@@ -244,7 +244,7 @@ class Zend_Filter_StripTags implements Zend_Filter_Interface
             $pos   = strrpos($value, '<!--');
             $start = substr($value, 0, $pos);
             $value = substr($value, $pos);
-            $value = preg_replace('/<(?:!(?:--[\s\S]*?--\s*)?(>))/us', '',  $value);
+            $value = preg_replace('/<(?:!(?:--[\s\S]*?--\s*)?(>))/s', '',  $value);
             $value = $start . $value;
         }
 

+ 20 - 0
tests/Zend/Filter/StripTagsTest.php

@@ -602,6 +602,26 @@ class Zend_Filter_StripTagsTest extends PHPUnit_Framework_TestCase
         $expected = '<img width="10" height="10" src=\'wont_be_matched.jpg\'>';
         $this->assertEquals($expected, $filter->filter($input));
     }
+
+    public function testStripTagsUnicode()
+    {
+        set_time_limit(30);
+
+        $value = '<div>This string will be<!-- Strange char r�d --> cleaned</div>';
+        $filter = new Zend_Filter_StripTags();
+        $valueFiltered = $filter->filter($value);
+        $this->assertEquals('This string will be cleaned', $valueFiltered);
+
+        $value = '<div>This string will be<!-- Сообщение --> cleaned</div>';
+        $filter = new Zend_Filter_StripTags();
+        $valueFiltered = $filter->filter($value);
+        $this->assertEquals('This string will be cleaned', $valueFiltered);
+
+        $value = '<div>This string will be<!-- ๐๑๒๓๔๕๖๗๘๙ --> cleaned</div>';
+        $filter = new Zend_Filter_StripTags();
+        $valueFiltered = $filter->filter($value);
+        $this->assertEquals('This string will be cleaned', $valueFiltered);
+    }
 }
 
 // Call Zend_Filter_StripTagsTest::main() if this source file is executed directly.