Re: Re: Q. Adding line numbers to highlighted source
| From: | Philip Olson | Date: | Sun, 06 Apr 2003 16:06:27 +0000 |
| Subject: | Re: Re: Q. Adding line numbers to highlighted source | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-142594@lists.php.net to get a copy of this message | ||
FWIW:
There is a proposal to add a runtime option to view
line numbers in the source, something like:
http://www.example.com/hi.phps?SHOW_LINENUMBERS
In fact, some even thought it was applied but alas
it never was. There is a little information on this
feature request here:
http://bugs.php.net/bug.php?id=15208
Don't hesistate to vote for this feature request :)
Regards,
Philip
On Sat, 5 Apr 2003, Alan McFarlane wrote:
> 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
> >
> >
> >
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>