Re: Limitations of preg_replace?

From: Date: Thu, 25 Oct 2007 09:37:13 +0000
Subject: Re: Limitations of preg_replace?
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-263636@lists.php.net to get a copy of this message
On 25/10/2007, Werner Schneider <wuschba@yahoo.de> wrote: > Hi. > > Are there any limitations of preg_replace and is there > a way to change them (for example with ini_set)? > > I got a php 4.4.7 on a linux-webhoster which crashes > without error-message on this script: > <?php > $txt = ""; > for ($i = 0; $i < 2000; $i++) > { $txt .= "<a href=\"helloworld.htm\" title=\"my > title\"><img src=\"/mypic.jpg\"></a><br />\n"; > } > $txt = > preg_replace("/<a(.*)href=\"\\index.htm\">/isU", > "<a$1href=\"\\\">", $txt); > print $txt; > ?> > If I loop only 1000 times or don't use (.*)->$1 on the > regular expression, it works. It works as well on a > local WAMP-Installation. > > Any ideas about that? Yeah, the backtrack limit. But 1. it's not configurable in PHP 4 2. You'd be better off writing your regexp so it doesn't have to backtrack all the way through a 150KB string. Try replacing .* with [^>]* -robin

« previous php.general (#263636) next »