Anonymous | Login | Signup for a new account | 12-17-2024 10:52 PST |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Advanced Details [ Jump to Notes ] | [ View Simple ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0001562 | [Quercus] | major | always | 01-17-07 03:40 | 06-25-07 12:45 | ||||
Reporter | obaltz | View Status | public | ||||||
Assigned To | sam | ||||||||
Priority | normal | Resolution | fixed | Platform | |||||
Status | closed | OS | |||||||
Projection | none | OS Version | |||||||
ETA | none | Fixed in Version | 3.1.2 | Product Version | 3.1.0 | ||||
Product Build | |||||||||
Summary | 0001562: Problem with back references to subpatterns in preg_match_all | ||||||||
Description |
When using a back reference within the pattern, the behaviour of preg_match_all differs from the original php implementation. The PEAR template engine (class HTML_Template_IT) doesn't work due to this bug. See Additional info for a demo script. The pattern used in the script is the same as used in the PEAR class. The demo script contains the same pattern twice, firstly as a single-quoted, secondly as a double-quoted string. The original php implementation treats those differently, Quercus does not. Quercus always behaves as if it were double-quoted. |
||||||||
Steps To Reproduce | |||||||||
Additional Information |
Demo script: <?php $pattern = '@<!--\s+BEGIN\s+([0-9A-Za-z_-]+)\s+-->(.*)<!--\s+END\s+\1\s+-->@sm'; // this will work with original php interpreter ONLY // $pattern = "@<!--\s+BEGIN\s+([0-9A-Za-z_-]+)\s+-->(.*)<!--\s+END\s+\1\s+-->@sm"; // this will never work $string = "pre block <!-- BEGIN testblock --> inside block <!-- END testblock --> post block"; $regs = array(); $result = preg_match_all( $pattern, $string, $regs, PREG_SET_ORDER ); var_dump( $result ); var_dump( $regs ); ?> The original php interpreter outputs: int(1) array(1) { [0]=> array(3) { [0]=> string(60) "<!-- BEGIN testblock --> inside block <!-- END testblock -->" [1]=> string(9) "testblock" [2]=> string(14) " inside block " } } Quercus outputs: int(0) array(0) { } |
||||||||
Attached Files | |||||||||
|
Relationships | |||||||||||
|
Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
46 total queries executed. 35 unique queries executed. |