Re: Re: Q. Adding line numbers to highlighted source
| From: | Alan McFarlane | Date: | Sat, 05 Apr 2003 00:36:07 +0000 |
| Subject: | Re: Re: Q. Adding line numbers to highlighted source | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-142583@lists.php.net to get a copy of this message | ||
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" <holmes072000@charter.net> wrote in message
news:000d01c2fad5$b40c05a0$7c02a8c0@coconut...
> 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:mcfarlane_alan@lycos.co.uk]
> > Sent: Friday, April 04, 2003 12:46 PM
> > To: php-general@lists.php.net
> > 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" <mcfarlane_alan@lycos.co.uk> wrote in message
> > news:20030404052948.42043.qmail@pb1.pair.com...
> > > 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
>
>
>