Source highlighting

mixed highlight_file ( string filename [, bool return])

mixed highlight_string ( string filename [, bool return])

An easy way to spot very basic errors is to use a text editor that has syntax highlighting capabilities. Editors like these will recognise 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 in 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(). Highlight_file() takes a filename as its parameter, and outputs to the screen that file, with all keywords, strings, numbers, and functions highlighted in various colours. Highlight_string() is almost identical, except it takes a string as its parameter.

Author's Note: 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.

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

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

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. Note that 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, which gives you a little more control over it.


Want to learn PHP 7?

Hacking with PHP has been fully updated for PHP 7, and is now available as a downloadable PDF. Get over 1200 pages of hands-on PHP learning today!

If this was helpful, please take a moment to tell others about Hacking with PHP by tweeting about it!

Next chapter: Handling MySQL errors >>

Previous chapter: Triggering your own errors

Jump to:


Home: Table of Contents

Copyright ©2015 Paul Hudson. Follow me: @twostraws.