From:             pim at highattention dot nl
Operating system: CENTOS 6.3 x86_64
PHP version:      5.3.21
Package:          XML related
Bug Type:         Bug
Bug description:Regex in XML fails with brackets

Description:
------------
A couple of weeks ago, we upgraded php to 5.3.19. Eversince the following
bug 
appears: When I try to get the regex out of a XML file, he only gives the
last 
piece as result.

<?xml version="1.0" encoding="utf-8" ?> <simplexml>
<regex><![CDATA[/(^[a-zA-Z0-
9._-]+@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}\$)|^\$/i]]></regex> </simplexml>

The result is ']{2,5}\$)|^\$/i':

> FileHandler_Xml Object
(
    [_filename:protected] => 
    [_parser:protected] => 
    [_children:protected] => Array
        (
            [regex] => FileHandler_Xml_Element Object
                (
                    [_cdata:protected] => ]{2,5}\$)|^\$/i
                    [_attributes:protected] => 
                    [_children:protected] => 
                )
        )
    [obj] => 
)
I use 'XML Parser' to parse the XML to the object above.

I hope somebody can help me out with this problem?

With kind regards,

Pim

Test script:
---------------
public function addXml($xml){

               $this->_parserMemory = array();

        $parser = xml_parser_create( 'UTF-8' );

        

        xml_set_object($parser, $this);

        xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);

        xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);

        xml_set_element_handler($parser, "_xmlTagOpen", "_xmlTagClose");

        xml_set_character_data_handler($parser, "_xmlCdata");

    

        if (!xml_parse($parser, $xml)) {

            $this->_children = array();

            $error_code = xml_get_error_code($parser);

            $error_string = xml_error_string($error_code);

            $current_line = xml_get_current_line_number($parser);

            $current_column = xml_get_current_column_number($parser);


        }

        

        unset($this->_parserMemory);

        xml_parser_free($parser);

}

protected function _xmlCdata($parser, $cdata) 

    {
               
        if ( trim($cdata) != '' && count($this->_parserMemory)>1 ) {

            $obj = $this->getCurrentObject();
            

            $obj->setValue($this->_xmlConvertValueFromString($cdata));
            
            

        }
        


    }

Expected result:
----------------
> FileHandler_Xml Object
(
    [_filename:protected] => 
    [_parser:protected] => 
    [_children:protected] => Array
        (
            [regex] => FileHandler_Xml_Element Object
                (
                    [_cdata:protected] =>
/(^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+.[a-
zA-Z.]{2,5}\$)|^\$/i
                    [_attributes:protected] => 
                    [_children:protected] => 
                )
        )
    [obj] => 
)

Actual result:
--------------
The result is ']{2,5}\$)|^\$/i':

> FileHandler_Xml Object
(
    [_filename:protected] => 
    [_parser:protected] => 
    [_children:protected] => Array
        (
            [regex] => FileHandler_Xml_Element Object
                (
                    [_cdata:protected] => ]{2,5}\$)|^\$/i
                    [_attributes:protected] => 
                    [_children:protected] => 
                )
        )
    [obj] => 
)

-- 
Edit bug report at https://bugs.php.net/bug.php?id=64126&edit=1
-- 
Try a snapshot (PHP 5.4):   
https://bugs.php.net/fix.php?id=64126&r=trysnapshot54
Try a snapshot (PHP 5.3):   
https://bugs.php.net/fix.php?id=64126&r=trysnapshot53
Try a snapshot (trunk):     
https://bugs.php.net/fix.php?id=64126&r=trysnapshottrunk
Fixed in SVN:               https://bugs.php.net/fix.php?id=64126&r=fixed
Fixed in release:           https://bugs.php.net/fix.php?id=64126&r=alreadyfixed
Need backtrace:             https://bugs.php.net/fix.php?id=64126&r=needtrace
Need Reproduce Script:      https://bugs.php.net/fix.php?id=64126&r=needscript
Try newer version:          https://bugs.php.net/fix.php?id=64126&r=oldversion
Not developer issue:        https://bugs.php.net/fix.php?id=64126&r=support
Expected behavior:          https://bugs.php.net/fix.php?id=64126&r=notwrong
Not enough info:            
https://bugs.php.net/fix.php?id=64126&r=notenoughinfo
Submitted twice:            
https://bugs.php.net/fix.php?id=64126&r=submittedtwice
register_globals:           https://bugs.php.net/fix.php?id=64126&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=64126&r=php4
Daylight Savings:           https://bugs.php.net/fix.php?id=64126&r=dst
IIS Stability:              https://bugs.php.net/fix.php?id=64126&r=isapi
Install GNU Sed:            https://bugs.php.net/fix.php?id=64126&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=64126&r=float
No Zend Extensions:         https://bugs.php.net/fix.php?id=64126&r=nozend
MySQL Configuration Error:  https://bugs.php.net/fix.php?id=64126&r=mysqlcfg

Reply via email to