I suspect that is because of the regex code evaluation; but thanks for the
suggestion anyway.

BTW, I found a way to speed (my version) even more, something that I still
forget to use on a regular basis but has been proven to be ~extremely~ good
at boosting speed:

replace:

    for ($i = 0; $i < count($source); $i++)

with:

    for ($i = 0, $_count = count($source); $i < $_count; $i++)

This simply prevents a continual reevaluation of count($source) (or
whatever) and can provide some spectacular gains


--
Alan

"John W. Holmes" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> This also works the same, for comparisons sake, but your solution
> benchmarks faster:
>
> $i=2;
> $fp = fopen($url,'r');
> $file = fread($fp,filesize($url));
> $file = highlight_string($file,TRUE);
>
> $file = str_replace('<code>','<code><span
> style="color:black;">00001</span>',$file);
>
> $file = preg_replace('/<br \/>/e','sprintf("<br /><span
> style=\"color:black;\">%05d </span>",$i++)',$file);
>
> echo "<hr>";
>
> echo $file;
>
> Enjoy!
>
> ---John W. Holmes...
>
> PHP Architect - A monthly magazine for PHP Professionals. Get your copy
> today. http://www.phparch.com/
>
> > -----Original Message-----
> > From: Alan McFarlane [mailto:[EMAIL PROTECTED]
> > Sent: Friday, April 04, 2003 12:46 PM
> > To: [EMAIL PROTECTED]
> > Subject: [PHP] Re: Q. Adding line numbers to highlighted source
> >
> > Well I finally found a workable solution:
> >
> > $url = "index.php"; /* for example */
> > $source = explode("<br />", preg_replace("`\</?code\>`Ui", "",
> > highlight_file($url, true)));
> >
> > for ($i = 0; $i < count ($source); $i++)
> >     $source[$i] = "<span style=\"color:black;\">" . str_pad($i, 5,
> "0",
> > STR_PAD_LEFT) . "</span> " . $source[$i];
> >
> > echo "<code>" . implode("<br />", $source) . "</code>";
> >
> >
> >
> >
> > "Alan McFarlane" <[EMAIL PROTECTED]> wrote in message
> > news:[EMAIL PROTECTED]
> > > I've been trying to add line-numbers to my source code, but can't
> seem
> > to
> > > work out how to do it.
> > >
> > > As an example, I tried the following:
> > >
> > > <?php
> > >
> > > function addPrefix( $matches )
> > > {
> > >     static $line = 1;
> > >
> > >     return $line++ . $matches[0];
> > > }
> > >
> > > $url = split("\?", $_GET['url']);
> > > $source = highlight_file($url[0], true);
> > > $source = preg_replace_callback("`\<br \/\>`U", "addPrefix",
> $source);
> > >
> > > echo $source;
> > >
> > > ?>
> > >
> > > which is called whenever the use user on a link like <a
> > > href="show-source.php?url=index.php">Show Source</a>
> > >
> > > The problem is that my regex does not correcly match the lines.
> > >
> > > Anyone got any bright ideas?
> > >
> > > --
> > > Alan McFarlane
> > >
> > >
> >
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>



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

Reply via email to