On 25/10/2007, Werner Schneider <[EMAIL PROTECTED]> 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

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to