1

How do you display your php source code with highlight or view source or is there more alternatives to this?

6 Answers 6

6

PHP has two native functions that might be of interest: highlight_file() and highlight_string(). If neither of those are ideal, you could also use Google Code Prettify to achieve this result. This is the solution many use, including StackOverflow itself.

Alternatives:

Sign up to request clarification or add additional context in comments.

Comments

2

You can use the php highlight_file function to echo the source of a file with syntax highlighting.

Comments

1

On many servers if you give it a .phps file extension the source code will be displayed and highlighted.

Comments

0

GeSHi - Generic Syntax Highlighter is another opensource javascript library.

Comments

0

I do my editing in gvim which can be configured to do syntax sensitive code highlighting (amongst other things).

PHP has a builtin function which converts a string to coloured HTML

http://php.net/manual/en/function.highlight-string.php

so...

<?php

print highlight_string(file_get_contents(__FILE__));

?>

demonstrates this.

You might also wnat to have a lokk at GeSHi

http://qbnz.com/highlighter/

HTH

C.

Comments

0

I don't like to load my scripts form foreign hosts each time - especially not from search engines like PRISM. This is not that secure and load-time-killing. If you have experience with RegExp it's quick done.

Here is a snippet I used for a short PHP tutorial. You need to complete it with some CSS, commands in the last RegExp and an onload='init()' in the body-tag.

function init() { 
   var codes= document.getElementsByTagName('code')
      ,str= ''
      ,len= codes.length
      ,c= 0
      ;
   for(c; c < len; c++){ 
      str = codes[c].textContent;   
      str=str.replace(/(\bnull\b|\b[0-9]+\b|\btrue\b|\bfalse\b|"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/g,"<span class=\"text\">$1</span>");
      str=str.replace(/(\(|\)|\[|\]|\{|\})/g,"<span class='bracket'>$&</span>");
      str=str.replace(/\$[a-z]\w*/gi,"<span class='variable'>$&</span>");
      str=str.replace(/( \! | \!\= | \!== | = | == | === | > | >= | < | <= | and | or )/g,"<span class='operator'>$&</span>");
      str=str.replace(/\b(for|function|return|unset|count|global|if|else|else if|intval|int|array)\b/g,"<span class='command'>$1</span>");
      codes[c].innerHTML=str;
   }
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.