Section 22.5. Source Highlighting


22.5. Source Highlighting

An easy way to spot very basic errors is to use a text editor that has syntax highlighting capabilities. Editors like these will recognize that you are editing a PHP script and automatically highlight the text in such a way as to make each element stand out in the source code. We discussed syntax highlighting earlier, but what I want to mention here is that PHP has built-in support for syntax highlighting itself.

The two key functions here are highlight_file( ) and highlight_string( ), although there is also a function show_source( ) that is an alias to highlight_file( ). This takes a filename as its parameter and outputs that file to the screen, with all keywords, strings, numbers, and functions highlighted in various colors, as shown in Figure 22-1. The highlight_string( ) function is almost identical, except it takes a string as its parameter.

Many people use these two functions to allow visitors to their site to view the source code for their pages. However, it is important to remember that doing so potentially reveals secret information, such as database passwords.


Figure 22-1. PHP has its own syntax highlighting system that provides a little help for debugging, but is still no replacement for full syntax highlighting


This example shows how to highlight a string of code and also a file:

     $mystr = '<?php $foo = "bar"; $bar = array("baz", "wombat", "foo");             var_dump($foo); ?>';     highlight_string($mystr);     file_put_contents("highlighter.php", $mystr);     highlight_file("highlighter.php"); 

As you can see, that passes the string into highlight_string( ), then saves it out as highlighter.php and passes that filename into highlight_file( ) to print out again. Both highlight_string( ) and highlight_file( ) can take a second parameter, which, if set to true, will make these functions return the highlighted HTML rather than just print it out directly, giving you more control over it.



PHP in a Nutshell
Ubuntu Unleashed
ISBN: 596100671
EAN: 2147483647
Year: 2003
Pages: 249

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net