-
Notifications
You must be signed in to change notification settings - Fork 2k
Closed
Labels
bugVerified issues on the current code behavior or pull requests that will fix themVerified issues on the current code behavior or pull requests that will fix them
Description
PHP Version
8.0
CodeIgniter4 Version
4.3.1
CodeIgniter4 Installation Method
Composer (using codeigniter4/appstarter)
Which operating systems have you tested for this bug?
Linux
Which server did you use?
apache
Database
MariaDB 10.6
What happened?
Reverse routing is failing for routes with regex containing parenthesis
Error: preg_match(): Compilation failed: missing closing parenthesis at offset 19,
vendor/codeigniter4/framework/system/Router/RouteCollection.php
line: 1238
Looking at the RouteCollection.php line 1211
preg_match_all('/\(([^)]+)\)/', $from, $matches);
It appears the regex is only matching to the first parenthesis and losing the rest.
Steps to Reproduce
$routes->addPlaceholder('imgFileExt', '^.*\.(?:jpg|png)$');
$routes->get('images/(:imgFileExt)', 'Images::getFile/$1');$file = 'test.jpg';
url_to('Images::getFile', $file)Expected Output
<base_url>/images/test.jpg
Anything else?
No response
Metadata
Metadata
Assignees
Labels
bugVerified issues on the current code behavior or pull requests that will fix themVerified issues on the current code behavior or pull requests that will fix them