<?php
</span>="color: #FF8000">
</span>="color: #007700">class </span>="color: #0000BB">SyntaxColour </span>="color: #007700">{
var </span>="color: #0000BB">$in_php </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
var </span>="color: #0000BB">$in_html_comment </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
var </span>="color: #0000BB">$in_html_tag </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
var </span>="color: #0000BB">$in_html_string </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
var </span>="color: #0000BB">$html_parsing_arguments </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
var </span>="color: #0000BB">$html_parsing_param </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
var </span>="color: #0000BB">$html_existing </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
var </span>="color: #0000BB">$in_php_ml_comment </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
var </span>="color: #0000BB">$in_php_sl_comment </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
var </span>="color: #0000BB">$in_php_string_dq </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
var </span>="color: #0000BB">$in_php_string_sq </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
function </span>="color: #0000BB">processCode</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">) {
</span>="color: #0000BB">$len </span>="color: #007700">= </span>="color: #0000BB">strlen</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">);
do {
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">output_char </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">; </span>="color: #FF8000">
</span>="color: #0000BB">$ofset_increment </span>="color: #007700">= </span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">process</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">);
if (</span>="color: #0000BB">$ofset_increment </span>="color: #007700">== </span>="color: #0000BB">0</span>="color: #007700">) {
</span>="color: #0000BB">$ca </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #0000BB">1</span>="color: #007700">);
echo </span>="color: #DD0000">"$ca"</span>="color: #007700">;
</span>="color: #0000BB">$ofs </span>="color: #007700">+= </span>="color: #0000BB">1</span>="color: #007700">;
}
</span>="color: #0000BB">$ofs </span>="color: #007700">+= </span>="color: #0000BB">$ofset_increment</span>="color: #007700">;
} while (</span>="color: #0000BB">$ofs </span>="color: #007700"><= </span>="color: #0000BB">$len</span>="color: #007700">);
}
function </span>="color: #0000BB">process</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">) {
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"<?"</span>="color: #007700">)) {
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
echo </span>="color: #DD0000">"<SPAN CLASS=\"php_tags\"><?</SPAN><SPAN CLASS=\"php_method\">"</span>="color: #007700">;
return </span>="color: #0000BB">5</span>="color: #007700">;
}
if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php</span>="color: #007700">) { </span>="color: #FF8000">
</span>="color: #007700">if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"\\"</span>="color: #007700">)) {
</span>="color: #0000BB">$escaped </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #0000BB">2</span>="color: #007700">);
echo </span>="color: #DD0000">"<SPAN CLASS='php_escaped'>$escaped</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">2</span>="color: #007700">;
}
if (!</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_sq</span>="color: #007700">) {
if (!</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_dq</span>="color: #007700">) {
if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_sl_comment</span>="color: #007700">) { </span>="color: #FF8000">
</span>="color: #007700">if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">""</span>="color: #007700">)) {
echo </span>="color: #DD0000">"</SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_sl_comment </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
return </span>="color: #0000BB">0</span>="color: #007700">;
}
} else { </span>="color: #FF8000">
</span>="color: #007700">if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"//"</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='php_comment'>//"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_sl_comment </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
return </span>="color: #0000BB">2</span>="color: #007700">;
}
if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_ml_comment</span>="color: #007700">) { </span>="color: #FF8000">
</span>="color: #007700">if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"*/"</span>="color: #007700">)) {
echo </span>="color: #DD0000">"*/</SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_ml_comment </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
return </span>="color: #0000BB">2</span>="color: #007700">;
}
} else { </span>="color: #FF8000">
</span>="color: #007700">if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"/*"</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='php_comment'>/*"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_ml_comment </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
return </span>="color: #0000BB">2</span>="color: #007700">;
}
}
}
}
}
if (!</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_ml_comment</span>="color: #007700">) { </span>="color: #FF8000">
</span>="color: #007700">if (!</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_sl_comment</span>="color: #007700">) { </span>="color: #FF8000">
</span>="color: #0000BB">$char </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #0000BB">1</span>="color: #007700">);
if (!</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_sq</span>="color: #007700">) {
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"\""</span>="color: #007700">)) {
if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_dq</span>="color: #007700">) {
echo </span>="color: #DD0000">"\"</SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_dq </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
return </span>="color: #0000BB">1</span>="color: #007700">;
} else {
echo </span>="color: #DD0000">"<SPAN CLASS='php_string'>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_dq </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
return </span>="color: #0000BB">0</span>="color: #007700">;
}
}
}
if (!</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_dq</span>="color: #007700">) {
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"'"</span>="color: #007700">)) {
if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_sq</span>="color: #007700">) {
echo </span>="color: #DD0000">"'</SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_sq </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
return </span>="color: #0000BB">1</span>="color: #007700">;
} else {
echo </span>="color: #DD0000">"<SPAN CLASS='php_string'>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_sq </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
return </span>="color: #0000BB">0</span>="color: #007700">;
}
}
}
if (!</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_sq</span>="color: #007700">) {
if (!</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php_string_dq</span>="color: #007700">) {
if (</span>="color: #0000BB">isABracket</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='php_brackets'>$char</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">1</span>="color: #007700">;
}
if (</span>="color: #0000BB">isABrace</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='php_braces'>$char</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">1</span>="color: #007700">;
}
if (</span>="color: #0000BB">isOperators</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='php_operate'>$char</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">1</span>="color: #007700">;
}
if (</span>="color: #0000BB">isPunctuation</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='php_punct'>$char</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">1</span>="color: #007700">;
}
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">">"</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='php_punct'>></SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">4</span>="color: #007700">;
}
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"<"</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='php_punct'><</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">4</span>="color: #007700">;
}
if (</span>="color: #0000BB">isANumber</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">)) { </span>="color: #FF8000">
</span>="color: #0000BB">$length </span>="color: #007700">= </span>="color: #0000BB">returnLengthOfTheNumberAt</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">);
</span>="color: #0000BB">$number </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #0000BB">$length</span>="color: #007700">);
</span>="color: #0000BB">$number_raw </span>="color: #007700">= </span>="color: #0000BB">$number</span>="color: #007700">;
if (</span>="color: #0000BB">isPlusOrMinus</span>="color: #007700">(</span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$number_raw</span>="color: #007700">, </span>="color: #0000BB">0</span>="color: #007700">, </span>="color: #0000BB">1</span>="color: #007700">))) {
</span>="color: #0000BB">$number_raw </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$number_raw</span>="color: #007700">, </span>="color: #0000BB">1</span>="color: #007700">);
}
if (</span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$number_raw</span>="color: #007700">, </span>="color: #0000BB">0</span>="color: #007700">, </span>="color: #0000BB">1</span>="color: #007700">) == </span>="color: #DD0000">"."</span>="color: #007700">) {
</span>="color: #0000BB">$number_raw </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$number_raw</span>="color: #007700">, </span>="color: #0000BB">1</span>="color: #007700">);
}
if (</span>="color: #0000BB">isAPositiveNumber</span>="color: #007700">(</span>="color: #0000BB">$number_raw</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='php_number'>$number</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">$length</span>="color: #007700">;
}
}
if (!</span>="color: #0000BB">isATerminator</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">)) {
if (</span>="color: #0000BB">isATerminator</span>="color: #007700">(</span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs </span>="color: #007700">-</span>="color: #0000BB">1</span>="color: #007700">, </span>="color: #0000BB">1</span>="color: #007700">))) {
</span>="color: #0000BB">$length </span>="color: #007700">= </span>="color: #0000BB">returnLengthOfTheVariableAt</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">);
</span>="color: #0000BB">$keyword </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #0000BB">$length</span>="color: #007700">);
if (</span>="color: #0000BB">isAKeyword</span>="color: #007700">(</span>="color: #0000BB">$keyword</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='php_keyword'>$keyword</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">$length</span>="color: #007700">;
} else
if (</span>="color: #0000BB">isAConstant</span>="color: #007700">(</span>="color: #0000BB">$keyword</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='php_const'>$keyword</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">$length</span>="color: #007700">;
}
}
}
}
}
if (</span>="color: #0000BB">$char </span>="color: #007700">== </span>="color: #DD0000">"$"</span>="color: #007700">) {
</span>="color: #0000BB">$length </span>="color: #007700">= </span>="color: #0000BB">returnLengthOfTheVariableAt</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">);
</span>="color: #0000BB">$var </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #0000BB">$length</span>="color: #007700">);
echo </span>="color: #DD0000">"<SPAN CLASS='php_var'>$var</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">$length</span>="color: #007700">;
}
}
}
} else { </span>="color: #FF8000">
</span>="color: #007700">if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_existing</span>="color: #007700">) {
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">">"</span>="color: #007700">)) {
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_existing </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
}
} else {
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"<"</span>="color: #007700">)) {
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_existing </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
}
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"<!--"</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='html_comment'><!--"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_comment </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
return </span>="color: #0000BB">7</span>="color: #007700">;
}
if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_comment </span>="color: #007700">== </span>="color: #0000BB">false</span>="color: #007700">) {
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"</"</span>="color: #007700">)) { </span>="color: #FF8000">
</span>="color: #007700">echo </span>="color: #DD0000">"<SPAN CLASS='html_angle'><<SPAN CLASS='html_tag_clos'>/"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_tag </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_arguments </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_param </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
return </span>="color: #0000BB">5</span>="color: #007700">;
} else
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"<"</span>="color: #007700">)) { </span>="color: #FF8000">
</span>="color: #007700">echo </span>="color: #DD0000">"<SPAN CLASS='html_angle'><<SPAN CLASS='html_tag_open'>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_tag </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_arguments </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_param </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
return </span>="color: #0000BB">4</span>="color: #007700">;
}
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">">"</span>="color: #007700">)) { </span>="color: #FF8000">
</span>="color: #007700">if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_arguments</span>="color: #007700">) {
echo </span>="color: #DD0000">"</SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_arguments </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
}
if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_param</span>="color: #007700">) {
echo </span>="color: #DD0000">"</SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_param </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
}
echo </span>="color: #DD0000">"</SPAN>></SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_tag </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
return </span>="color: #0000BB">4</span>="color: #007700">;
}
if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_tag </span>="color: #007700">== </span>="color: #0000BB">true</span>="color: #007700">) {
if (!</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_string</span>="color: #007700">) {
if (!</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_param</span>="color: #007700">) {
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">" "</span>="color: #007700">)) { </span>="color: #FF8000">
</span>="color: #007700">if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_arguments</span>="color: #007700">) {
echo </span>="color: #DD0000">"</SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_arguments </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
}
echo </span>="color: #DD0000">"<SPAN CLASS='html_param'>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_param </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
}
}
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"="</span>="color: #007700">)) { </span>="color: #FF8000">
</span>="color: #007700">if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_param</span>="color: #007700">) {
echo </span>="color: #DD0000">"</SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_param </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
}
echo </span>="color: #DD0000">"<SPAN CLASS='html_equals'>=</SPAN><SPAN CLASS='html_argument'>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_arguments </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
return </span>="color: #0000BB">1</span>="color: #007700">;
}
if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">html_parsing_arguments</span>="color: #007700">) { </span>="color: #FF8000">
</span>="color: #0000BB">$digit </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #0000BB">1</span>="color: #007700">);
if (</span>="color: #0000BB">isANumber</span>="color: #007700">(</span>="color: #0000BB">$digit</span>="color: #007700">)) { </span>="color: #FF8000">
</span>="color: #0000BB">$length </span>="color: #007700">= </span>="color: #0000BB">returnLengthOfTheNumberAt</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">);
</span>="color: #0000BB">$number </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #0000BB">$length</span>="color: #007700">);
echo </span>="color: #DD0000">"<SPAN CLASS='html_number'>$number</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">$length</span>="color: #007700">;
}
}
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"'"</span>="color: #007700">) || </span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"\""</span>="color: #007700">)) {
echo </span>="color: #DD0000">"<SPAN CLASS='html_string'>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_string </span>="color: #007700">= </span>="color: #0000BB">true</span>="color: #007700">;
}
} else
if (</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_string</span>="color: #007700">) {
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"\""</span>="color: #007700">)) {
echo </span>="color: #DD0000">"\"</SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_string </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
return </span>="color: #0000BB">1</span>="color: #007700">;
}
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"'"</span>="color: #007700">)) {
echo </span>="color: #DD0000">"'</SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_string </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
return </span>="color: #0000BB">1</span>="color: #007700">;
}
}
} else { </span>="color: #FF8000">
</span>="color: #007700">if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"&"</span>="color: #007700">)) {
</span>="color: #0000BB">$pentity </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs </span>="color: #007700">+</span>="color: #0000BB">5</span>="color: #007700">, </span>="color: #0000BB">8</span>="color: #007700">);
</span>="color: #0000BB">$peoend </span>="color: #007700">= </span>="color: #0000BB">strpos</span>="color: #007700">(</span>="color: #0000BB">$pentity</span>="color: #007700">, </span>="color: #DD0000">";"</span>="color: #007700">);
if (!(</span>="color: #0000BB">peoend </span>="color: #007700">== </span>="color: #0000BB">false</span>="color: #007700">)) {
</span>="color: #0000BB">$aentity </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs </span>="color: #007700">+</span>="color: #0000BB">5</span>="color: #007700">, </span>="color: #0000BB">$peoend</span>="color: #007700">);
echo </span>="color: #DD0000">"<SPAN CLASS='html_entity'>&$aentity;</SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">$peoend </span>="color: #007700">+</span>="color: #0000BB">6</span>="color: #007700">;
}
}
}
}
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"-->"</span>="color: #007700">)) {
echo </span>="color: #DD0000">"--></SPAN>"</span>="color: #007700">;
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_html_comment </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
return </span>="color: #0000BB">6</span>="color: #007700">;
}
}
}
if (</span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #DD0000">"?>"</span>="color: #007700">)) {
</span>="color: #0000BB">$this </span>="color: #007700">-> </span>="color: #0000BB">in_php </span>="color: #007700">= </span>="color: #0000BB">false</span>="color: #007700">;
echo </span>="color: #DD0000">"</SPAN><SPAN CLASS=\"php_tags\">?></SPAN>"</span>="color: #007700">;
return </span>="color: #0000BB">5</span>="color: #007700">;
}
return </span>="color: #0000BB">0</span>="color: #007700">;
}
}
</span>="color: #0000BB">$URL </span>="color: #007700">= </span>="color: #0000BB">$_GET</span>="color: #007700">[</span>="color: #DD0000">'url'</span>="color: #007700">];
if (</span>="color: #0000BB">$URL </span>="color: #007700">!= </span>="color: #0000BB">null</span>="color: #007700">) {
</span>="color: #0000BB">colourURL</span>="color: #007700">(</span>="color: #0000BB">$URL</span>="color: #007700">);
}
</span>="color: #0000BB">$path </span>="color: #007700">= </span>="color: #0000BB">$_GET</span>="color: #007700">[</span>="color: #DD0000">'file'</span>="color: #007700">];
if (</span>="color: #0000BB">$path </span>="color: #007700">!= </span>="color: #0000BB">null</span>="color: #007700">) {
</span>="color: #0000BB">colourFile</span>="color: #007700">(</span>="color: #DD0000">"$path"</span>="color: #007700">);
}
function </span>="color: #0000BB">setUpStyles</span>="color: #007700">(</span>="color: #0000BB">$title</span>="color: #007700">, </span>="color: #0000BB">$background </span>="color: #007700">= </span>="color: #DD0000">'#000000'</span>="color: #007700">, </span>="color: #0000BB">$php_method </span>="color: #007700">= </span>="color: #DD0000">'#F0F0C0'</span>="color: #007700">, </span>="color: #0000BB">$php_keyword </span>="color: #007700">= </span>="color: #DD0000">'#FFFF00'</span>="color: #007700">, </span>="color: #0000BB">$php_string </span>="color: #007700">= </span>="color: #DD0000">'#A0A0FF'</span>="color: #007700">, </span>="color: #0000BB">$php_comment </span>="color: #007700">= </span>="color: #DD0000">'#40FF40'</span>="color: #007700">, </span>="color: #0000BB">$php_tags_bg </span>="color: #007700">= </span>="color: #DD0000">'#FFFF00'</span>="color: #007700">, </span>="color: #0000BB">$php_tags </span>="color: #007700">= </span>="color: #DD0000">'#000080'</span>="color: #007700">, </span>="color: #0000BB">$php_punct </span>="color: #007700">= </span>="color: #DD0000">'#FFD000'</span>="color: #007700">, </span>="color: #0000BB">$php_brackets </span>="color: #007700">= </span>="color: #DD0000">'#FFD0D0'</span>="color: #007700">, </span>="color: #0000BB">$php_braces </span>="color: #007700">= </span>="color: #DD0000">'#FF9090'</span>="color: #007700">, </span>="color: #0000BB">$php_escaped </span>="color: #007700">= </span>="color: #DD0000">'#F08060'</span>="color: #007700">, </span>="color: #0000BB">$php_operate </span>="color: #007700">= </span>="color: #DD0000">'#C0A0E0'</span>="color: #007700">, </span>="color: #0000BB">$php_number </span>="color: #007700">= </span>="color: #DD0000">'#FFB090'</span>="color: #007700">, </span>="color: #0000BB">$php_var </span>="color: #007700">= </span>="color: #DD0000">'#A0D0F0'</span>="color: #007700">, </span>="color: #0000BB">$php_const </span>="color: #007700">= </span>="color: #DD0000">'#20E0E0'</span>="color: #007700">, </span>="color: #0000BB">$html_text </span>="color: #007700">= </span>="color: #DD0000">'#FFFFFF'</span>="color: #007700">, </span>="color: #0000BB">$html_comment </span>="color: #007700">= </span>="color: #DD0000">'#40FF40'</span>="color: #007700">, </span>="color: #0000BB">$html_equals </span>="color: #007700">= </span>="color: #DD0000">'#F0F0C0'</span>="color: #007700">, </span>="color: #0000BB">$html_string </span>="color: #007700">= </span>="color: #DD0000">'#C0C0FF'</span>="color: #007700">, </span>="color: #0000BB">$html_number </span>="color: #007700">= </span>="color: #DD0000">'#F0C000'</span>="color: #007700">, </span>="color: #0000BB">$html_entity </span>="color: #007700">= </span>="color: #DD0000">'#FF8060'</span>="color: #007700">, </span>="color: #0000BB">$html_argument </span>="color: #007700">= </span>="color: #DD0000">'#C0E0C0'</span>="color: #007700">, </span>="color: #0000BB">$html_param </span>="color: #007700">= </span>="color: #DD0000">'#E0C0C0'</span>="color: #007700">, </span>="color: #0000BB">$html_angle </span>="color: #007700">= </span>="color: #DD0000">'#D0D020'</span>="color: #007700">, </span>="color: #0000BB">$html_tag_open </span>="color: #007700">= </span>="color: #DD0000">'#FFE0A0'</span>="color: #007700">, </span>="color: #0000BB">$html_tag_clos </span>="color: #007700">= </span>="color: #DD0000">'#E0A0E0'</span>="color: #007700">) {
echo </span>="color: #DD0000">"<HTML><HEAD><TITLE>Source for $title</TITLE><style>\n"</span>="color: #007700">;
echo </span>="color: #DD0000">"body { color: $html_text; background-color: $background; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_method { color: $php_method; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_keyword { color: $php_keyword; font-weight: bold;}\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_string { color: $php_string; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_comment { color: $php_comment; font-style: italic; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_tags { color: $php_tags; background-color: $php_tags_bg; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_punct { color: $php_punct; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_brackets { color: $php_brackets; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_braces { color: $php_braces; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_escaped { color: $php_escaped; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_operate { color: $php_operate; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_number { color: $php_number; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_var { color: $php_var; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.php_const { color: $php_const; font-weight: bold; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.html_text { color: $html_text; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.html_equals { color: $html_equals; font-weight: normal ; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.html_string { color: $html_string; font-weight: normal ; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.html_number { color: $html_number; font-weight: normal ; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.html_entity { color: $html_entity; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.html_argument{ color: $html_argument; font-weight: bold; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.html_param { color: $html_param; font-weight: bold; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.html_angle { color: $html_angle; font-weight: bold; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.html_tag_open{ color: $html_tag_open; font-weight: bold; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.html_tag_clos{ color: $html_tag_clos; font-weight: bold; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">".source span.html_comment { color: $html_comment; font-style: italic; }\n"</span>="color: #007700">;
echo </span>="color: #DD0000">"</style></HEAD><BODY>"</span>="color: #007700">;
}
function </span>="color: #0000BB">colourFile</span>="color: #007700">(</span>="color: #0000BB">$path</span>="color: #007700">) {
</span>="color: #0000BB">$chars_ok </span>="color: #007700">= </span>="color: #0000BB">ereg</span>="color: #007700">(</span>="color: #DD0000">"([^a-zA-Z0-9/ :._-])|(\../|\./)"</span>="color: #007700">, </span>="color: #0000BB">$path</span>="color: #007700">);
if (</span>="color: #0000BB">$chars_ok</span>="color: #007700">) {
die(</span>="color: #DD0000">"Path contains forbidden characters or sequence"</span>="color: #007700">);
}
</span>="color: #0000BB">$file </span>="color: #007700">= </span>="color: #DD0000">"../"</span>="color: #007700">.</span>="color: #0000BB">$path</span>="color: #007700">;
if (!isSet(</span>="color: #0000BB">$file</span>="color: #007700">)) {
die(</span>="color: #DD0000">"Error: File not found"</span>="color: #007700">);
} else {
</span>="color: #0000BB">$source </span>="color: #007700">= </span>="color: #0000BB">highlight_file</span>="color: #007700">(</span>="color: #0000BB">$file</span>="color: #007700">, </span>="color: #0000BB">true</span>="color: #007700">);
</span>="color: #0000BB">output</span>="color: #007700">(</span>="color: #0000BB">$path</span>="color: #007700">, </span>="color: #0000BB">$source</span>="color: #007700">);
}
}
function </span>="color: #0000BB">colourURL</span>="color: #007700">(</span>="color: #0000BB">$url</span>="color: #007700">) {
</span>="color: #0000BB">$legal </span>="color: #007700">= </span>="color: #0000BB">strpos</span>="color: #007700">(</span>="color: #0000BB">$url</span>="color: #007700">, </span>="color: #DD0000">"http"</span>="color: #007700">);
if ((</span>="color: #0000BB">$legal </span>="color: #007700">=== </span>="color: #0000BB">false</span>="color: #007700">) || (</span>="color: #0000BB">$legal </span>="color: #007700">> </span>="color: #0000BB">0</span>="color: #007700">)) {
die(</span>="color: #DD0000">"URLs must start with 'http'"</span>="color: #007700">);
}
</span>="color: #0000BB">$url_chars_ok </span>="color: #007700">= </span>="color: #0000BB">ereg</span>="color: #007700">(</span>="color: #DD0000">"([^a-zA-Z0-9/ :._-])|(\../|\./)"</span>="color: #007700">, </span>="color: #0000BB">$url</span>="color: #007700">);
if (</span>="color: #0000BB">$url_chars_ok</span>="color: #007700">) {
die(</span>="color: #DD0000">"URL contains forbidden characters or sequence"</span>="color: #007700">);
}
</span>="color: #0000BB">$handle </span>="color: #007700">= </span>="color: #0000BB">fopen</span>="color: #007700">(</span>="color: #0000BB">$url</span>="color: #007700">, </span>="color: #DD0000">"r"</span>="color: #007700">);
if (</span>="color: #0000BB">$handle </span>="color: #007700">== </span>="color: #0000BB">null</span>="color: #007700">) {
die(</span>="color: #DD0000">"Error: The specified URL was not found"</span>="color: #007700">);
}
</span>="color: #0000BB">$file </span>="color: #007700">= </span>="color: #0000BB">file</span>="color: #007700">(</span>="color: #0000BB">$url</span>="color: #007700">);
</span>="color: #0000BB">$f_contents </span>="color: #007700">= </span>="color: #0000BB">implode</span>="color: #007700">(</span>="color: #DD0000">""</span>="color: #007700">, </span>="color: #0000BB">file</span>="color: #007700">(</span>="color: #0000BB">$url</span>="color: #007700">));
</span>="color: #0000BB">$source </span>="color: #007700">= </span>="color: #0000BB">highlight_string</span>="color: #007700">(</span>="color: #0000BB">$f_contents</span>="color: #007700">, </span>="color: #0000BB">true</span>="color: #007700">);
</span>="color: #0000BB">fclose</span>="color: #007700">(</span>="color: #0000BB">$handle</span>="color: #007700">);
</span>="color: #0000BB">output</span>="color: #007700">(</span>="color: #0000BB">$url</span>="color: #007700">, </span>="color: #0000BB">$source</span>="color: #007700">);
}
function </span>="color: #0000BB">output</span>="color: #007700">(</span>="color: #0000BB">$title</span>="color: #007700">, </span>="color: #0000BB">$source</span>="color: #007700">) {
</span>="color: #0000BB">setUpStyles</span>="color: #007700">(</span>="color: #0000BB">$title</span>="color: #007700">);
</span>="color: #0000BB">$source </span>="color: #007700">= </span>="color: #0000BB">replaceCode</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">);
</span>="color: #0000BB">startPrintingCode</span>="color: #007700">();
</span>="color: #0000BB">$sc </span>="color: #007700">= new </span>="color: #0000BB">SyntaxColour</span>="color: #007700">();
</span>="color: #0000BB">$sc </span>="color: #007700">-> </span>="color: #0000BB">processCode</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">);
</span>="color: #0000BB">endPrintingCode</span>="color: #007700">();
}
function </span>="color: #0000BB">startPrintingCode</span>="color: #007700">() {
echo </span>="color: #DD0000">'<PRE CLASS="source">'</span>="color: #007700">;
}
function </span>="color: #0000BB">endPrintingCode</span>="color: #007700">() {
echo </span>="color: #DD0000">'</PRE>'</span>="color: #007700">;
echo </span>="color: #DD0000">'</BODY>'</span>="color: #007700">;
echo </span>="color: #DD0000">'</HTML>'</span>="color: #007700">;
}
function </span>="color: #0000BB">replaceCode</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">) {
</span>="color: #0000BB">$search</span>="color: #007700">[</span>="color: #0000BB">0</span>="color: #007700">] = </span>="color: #DD0000">'<font color="'</span>="color: #007700">.</span>="color: #0000BB">ini_get</span>="color: #007700">(</span>="color: #DD0000">'highlight.html'</span>="color: #007700">).</span>="color: #DD0000">'">'</span>="color: #007700">;
</span>="color: #0000BB">$search</span>="color: #007700">[</span>="color: #0000BB">1</span>="color: #007700">] = </span>="color: #DD0000">'<font color="'</span>="color: #007700">.</span>="color: #0000BB">ini_get</span>="color: #007700">(</span>="color: #DD0000">'highlight.default'</span>="color: #007700">).</span>="color: #DD0000">'">'</span>="color: #007700">;
</span>="color: #0000BB">$search</span>="color: #007700">[</span>="color: #0000BB">2</span>="color: #007700">] = </span>="color: #DD0000">'<font color="'</span>="color: #007700">.</span>="color: #0000BB">ini_get</span>="color: #007700">(</span>="color: #DD0000">'highlight.keyword'</span>="color: #007700">).</span>="color: #DD0000">'">'</span>="color: #007700">;
</span>="color: #0000BB">$search</span>="color: #007700">[</span>="color: #0000BB">3</span>="color: #007700">] = </span>="color: #DD0000">'<font color="'</span>="color: #007700">.</span>="color: #0000BB">ini_get</span>="color: #007700">(</span>="color: #DD0000">'highlight.string'</span>="color: #007700">).</span>="color: #DD0000">'">'</span>="color: #007700">;
</span>="color: #0000BB">$search</span>="color: #007700">[</span>="color: #0000BB">4</span>="color: #007700">] = </span>="color: #DD0000">'<font color="'</span>="color: #007700">.</span>="color: #0000BB">ini_get</span>="color: #007700">(</span>="color: #DD0000">'highlight.comment'</span>="color: #007700">).</span>="color: #DD0000">'">'</span>="color: #007700">;
</span>="color: #0000BB">$search</span>="color: #007700">[</span>="color: #0000BB">5</span>="color: #007700">] = </span>="color: #DD0000">'</font>'</span>="color: #007700">;
</span>="color: #0000BB">$search</span>="color: #007700">[</span>="color: #0000BB">6</span>="color: #007700">] = </span>="color: #DD0000">' '</span>="color: #007700">;
</span>="color: #0000BB">$search</span>="color: #007700">[</span>="color: #0000BB">7</span>="color: #007700">] = </span>="color: #DD0000">'<br />'</span>="color: #007700">;
</span>="color: #0000BB">$search</span>="color: #007700">[</span>="color: #0000BB">8</span>="color: #007700">] = </span>="color: #DD0000">''</span>="color: #007700">;
</span>="color: #0000BB">$replace</span>="color: #007700">[</span>="color: #0000BB">0</span>="color: #007700">] = </span>="color: #DD0000">''</span>="color: #007700">;
</span>="color: #0000BB">$replace</span>="color: #007700">[</span>="color: #0000BB">1</span>="color: #007700">] = </span>="color: #DD0000">''</span>="color: #007700">;
</span>="color: #0000BB">$replace</span>="color: #007700">[</span>="color: #0000BB">2</span>="color: #007700">] = </span>="color: #DD0000">''</span>="color: #007700">;
</span>="color: #0000BB">$replace</span>="color: #007700">[</span>="color: #0000BB">3</span>="color: #007700">] = </span>="color: #DD0000">''</span>="color: #007700">;
</span>="color: #0000BB">$replace</span>="color: #007700">[</span>="color: #0000BB">4</span>="color: #007700">] = </span>="color: #DD0000">''</span>="color: #007700">;
</span>="color: #0000BB">$replace</span>="color: #007700">[</span>="color: #0000BB">5</span>="color: #007700">] = </span>="color: #DD0000">''</span>="color: #007700">;
</span>="color: #0000BB">$replace</span>="color: #007700">[</span>="color: #0000BB">6</span>="color: #007700">] = </span>="color: #DD0000">' '</span>="color: #007700">;
</span>="color: #0000BB">$replace</span>="color: #007700">[</span>="color: #0000BB">7</span>="color: #007700">] = </span>="color: #DD0000">''</span>="color: #007700">;
</span>="color: #0000BB">$replace</span>="color: #007700">[</span>="color: #0000BB">8</span>="color: #007700">] = </span>="color: #DD0000">''</span>="color: #007700">;
return </span>="color: #0000BB">str_replace</span>="color: #007700">(</span>="color: #0000BB">$search</span>="color: #007700">, </span>="color: #0000BB">$replace</span>="color: #007700">, </span>="color: #0000BB">$source</span>="color: #007700">);
}
function </span>="color: #0000BB">match</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #0000BB">$string</span>="color: #007700">) {
</span>="color: #0000BB">$len </span>="color: #007700">= </span>="color: #0000BB">strlen</span>="color: #007700">(</span>="color: #0000BB">$string</span>="color: #007700">);
if (</span>="color: #0000BB">strlen</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">) < </span>="color: #0000BB">$ofs </span>="color: #007700">+ </span>="color: #0000BB">$len</span>="color: #007700">) {
return </span>="color: #0000BB">false</span>="color: #007700">;
}
</span>="color: #0000BB">$slice </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">, </span>="color: #0000BB">$len</span>="color: #007700">);
return (</span>="color: #0000BB">$string </span>="color: #007700">== </span>="color: #0000BB">$slice</span>="color: #007700">);
}
function </span>="color: #0000BB">isANumber</span>="color: #007700">(</span>="color: #0000BB">$digit</span>="color: #007700">) {
if ((</span>="color: #0000BB">strpos</span>="color: #007700">(</span>="color: #DD0000">"0123456789+-%"</span>="color: #007700">, </span>="color: #0000BB">$digit</span>="color: #007700">) == </span>="color: #0000BB">false</span>="color: #007700">)) {
return </span>="color: #0000BB">false</span>="color: #007700">;
}
return </span>="color: #0000BB">true</span>="color: #007700">;
}
function </span>="color: #0000BB">isADigitOrADot</span>="color: #007700">(</span>="color: #0000BB">$digit</span>="color: #007700">) {
if ((</span>="color: #0000BB">strpos</span>="color: #007700">(</span>="color: #DD0000">"0123456789."</span>="color: #007700">, </span>="color: #0000BB">$digit</span>="color: #007700">) == </span>="color: #0000BB">false</span>="color: #007700">)) {
return </span>="color: #0000BB">false</span>="color: #007700">;
}
return </span>="color: #0000BB">true</span>="color: #007700">;
}
function </span>="color: #0000BB">isPunctuation</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">) {
if ((</span>="color: #0000BB">strpos</span>="color: #007700">(</span>="color: #DD0000">".,:;"</span>="color: #007700">, </span>="color: #0000BB">$char</span>="color: #007700">) == </span>="color: #0000BB">false</span>="color: #007700">)) {
return </span>="color: #0000BB">false</span>="color: #007700">;
}
return </span>="color: #0000BB">true</span>="color: #007700">;
}
function </span>="color: #0000BB">isOperators</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">) {
if ((</span>="color: #0000BB">strpos</span>="color: #007700">(</span>="color: #DD0000">"!=|*+-/"</span>="color: #007700">, </span>="color: #0000BB">$char</span>="color: #007700">) == </span>="color: #0000BB">false</span>="color: #007700">)) {
return </span>="color: #0000BB">false</span>="color: #007700">;
}
return </span>="color: #0000BB">true</span>="color: #007700">;
}
function </span>="color: #0000BB">isATerminator</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">) {
if (</span>="color: #0000BB">$char </span>="color: #007700">< </span>="color: #DD0000">"0"</span>="color: #007700">) {
return </span>="color: #0000BB">true</span>="color: #007700">;
}
if ((</span>="color: #0000BB">strpos</span>="color: #007700">(</span>="color: #DD0000">"=[]{}|`;?*/<>&$"</span>="color: #007700">, </span>="color: #0000BB">$char</span>="color: #007700">) == </span>="color: #0000BB">false</span>="color: #007700">)) {
return </span>="color: #0000BB">false</span>="color: #007700">;
}
return </span>="color: #0000BB">true</span>="color: #007700">;
}
function </span>="color: #0000BB">isABracket</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">) {
if ((</span>="color: #0000BB">strpos</span>="color: #007700">(</span>="color: #DD0000">"[]()"</span>="color: #007700">, </span>="color: #0000BB">$char</span>="color: #007700">) == </span>="color: #0000BB">false</span>="color: #007700">)) {
return </span>="color: #0000BB">false</span>="color: #007700">;
}
return </span>="color: #0000BB">true</span>="color: #007700">;
}
function </span>="color: #0000BB">isABrace</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">) {
if ((</span>="color: #0000BB">strpos</span>="color: #007700">(</span>="color: #DD0000">"{}"</span>="color: #007700">, </span>="color: #0000BB">$char</span>="color: #007700">) == </span>="color: #0000BB">false</span>="color: #007700">)) {
return </span>="color: #0000BB">false</span>="color: #007700">;
}
return </span>="color: #0000BB">true</span>="color: #007700">;
}
function </span>="color: #0000BB">isPlusOrMinus</span>="color: #007700">(</span>="color: #0000BB">$char</span>="color: #007700">) {
if ((</span>="color: #0000BB">strpos</span>="color: #007700">(</span>="color: #DD0000">"-+"</span>="color: #007700">, </span>="color: #0000BB">$char</span>="color: #007700">) == </span>="color: #0000BB">false</span>="color: #007700">)) {
return </span>="color: #0000BB">false</span>="color: #007700">;
}
return </span>="color: #0000BB">true</span>="color: #007700">;
}
function </span>="color: #0000BB">isAPositiveNumber</span>="color: #007700">(</span>="color: #0000BB">$number</span>="color: #007700">) {
</span>="color: #0000BB">$length </span>="color: #007700">= </span>="color: #0000BB">strlen</span>="color: #007700">(</span>="color: #0000BB">$number</span>="color: #007700">);
if (</span>="color: #0000BB">$length </span>="color: #007700">< </span>="color: #0000BB">1</span>="color: #007700">) {
return </span>="color: #0000BB">false</span>="color: #007700">;
}
for (</span>="color: #0000BB">$i </span>="color: #007700">= </span>="color: #0000BB">0</span>="color: #007700">; </span>="color: #0000BB">$i </span>="color: #007700">< </span>="color: #0000BB">$length</span>="color: #007700">; </span>="color: #0000BB">$i </span>="color: #007700">++) {
if (!</span>="color: #0000BB">isADigitOrADot</span>="color: #007700">(</span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$number</span>="color: #007700">, </span>="color: #0000BB">$i</span>="color: #007700">, </span>="color: #0000BB">1</span>="color: #007700">))) {
return </span>="color: #0000BB">false</span>="color: #007700">;
}
}
return </span>="color: #0000BB">true</span>="color: #007700">;
}
function </span>="color: #0000BB">returnLengthOfTheNumberAt</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">) {
</span>="color: #0000BB">$index </span>="color: #007700">= </span>="color: #0000BB">0</span>="color: #007700">;
do {
</span>="color: #0000BB">$index </span>="color: #007700">= </span>="color: #0000BB">$index </span>="color: #007700">+</span>="color: #0000BB">1</span>="color: #007700">;
</span>="color: #0000BB">$digit </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs </span>="color: #007700">+ </span>="color: #0000BB">$index</span>="color: #007700">, </span>="color: #0000BB">1</span>="color: #007700">);
} while (</span>="color: #0000BB">isANumber</span>="color: #007700">(</span>="color: #0000BB">$digit</span>="color: #007700">));
return </span>="color: #0000BB">$index</span>="color: #007700">;
}
function </span>="color: #0000BB">returnLengthOfTheVariableAt</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs</span>="color: #007700">) {
</span>="color: #0000BB">$index </span>="color: #007700">= </span>="color: #0000BB">0</span>="color: #007700">;
do {
</span>="color: #0000BB">$index </span>="color: #007700">= </span>="color: #0000BB">$index </span>="color: #007700">+</span>="color: #0000BB">1</span>="color: #007700">;
</span>="color: #0000BB">$digit </span>="color: #007700">= </span>="color: #0000BB">substr</span>="color: #007700">(</span>="color: #0000BB">$source</span>="color: #007700">, </span>="color: #0000BB">$ofs </span>="color: #007700">+ </span>="color: #0000BB">$index</span>="color: #007700">, </span>="color: #0000BB">1</span>="color: #007700">);
} while (!</span>="color: #0000BB">isATerminator</span>="color: #007700">(</span>="color: #0000BB">$digit</span>="color: #007700">));
return </span>="color: #0000BB">$index</span>="color: #007700">;
}
function </span>="color: #0000BB">isAKeyword</span>="color: #007700">(</span>="color: #0000BB">$keyword</span>="color: #007700">) {
</span>="color: #0000BB">$keywords </span>="color: #007700">= array(</span>="color: #DD0000">"and"</span>="color: #007700">, </span>="color: #DD0000">"or"</span>="color: #007700">, </span>="color: #DD0000">"xor"</span>="color: #007700">, </span>="color: #DD0000">"array"</span>="color: #007700">, </span>="color: #DD0000">"as"</span>="color: #007700">, </span>="color: #DD0000">"break"</span>="color: #007700">, </span>="color: #DD0000">"case"</span>="color: #007700">, </span>="color: #DD0000">"cfunction"</span>="color: #007700">, </span>="color: #DD0000">"class"</span>="color: #007700">, </span>="color: #DD0000">"const"</span>="color: #007700">, </span>="color: #DD0000">"continue"</span>="color: #007700">, </span>="color: #DD0000">"declare"</span>="color: #007700">, </span>="color: #DD0000">"default"</span>="color: #007700">, </span>="color: #DD0000">"die"</span>="color: #007700">, </span>="color: #DD0000">"do"</span>="color: #007700">, </span>="color: #DD0000">"echo"</span>="color: #007700">, </span>="color: #DD0000">"else"</span>="color: #007700">, </span>="color: #DD0000">"elseif"</span>="color: #007700">, </span>="color: #DD0000">"empty"</span>="color: #007700">, </span>="color: #DD0000">"enddeclare"</span>="color: #007700">, </span>="color: #DD0000">"endfor"</span>="color: #007700">, </span>="color: #DD0000">"endforeach"</span>="color: #007700">, </span>="color: #DD0000">"endif"</span>="color: #007700">, </span>="color: #DD0000">"endswitch"</span>="color: #007700">, </span>="color: #DD0000">"endwhile"</span>="color: #007700">, </span>="color: #DD0000">"eval"</span>="color: #007700">, </span>="color: #DD0000">"exit"</span>="color: #007700">, </span>="color: #DD0000">"extends"</span>="color: #007700">, </span>="color: #DD0000">"for"</span>="color: #007700">, </span>="color: #DD0000">"foreach"</span>="color: #007700">, </span>="color: #DD0000">"function"</span>="color: #007700">, </span>="color: #DD0000">"global"</span>="color: #007700">, </span>="color: #DD0000">"if"</span>="color: #007700">, </span>="color: #DD0000">"include"</span>="color: #007700">, </span>="color: #DD0000">"include_once"</span>="color: #007700">, </span>="color: #DD0000">"isset"</span>="color: #007700">, </span>="color: #DD0000">"list"</span>="color: #007700">, </span>="color: #DD0000">"new"</span>="color: #007700">, </span>="color: #DD0000">"old_function"</span>="color: #007700">, </span>="color: #DD0000">"print"</span>="color: #007700">, </span>="color: #DD0000">"require"</span>="color: #007700">, </span>="color: #DD0000">"require_once"</span>="color: #007700">, </span>="color: #DD0000">"return"</span>="color: #007700">, </span>="color: #DD0000">"static"</span>="color: #007700">, </span>="color: #DD0000">"switch"</span>="color: #007700">, </span>="color: #DD0000">"unset"</span>="color: #007700">, </span>="color: #DD0000">"use"</span>="color: #007700">, </span>="color: #DD0000">"var"</span>="color: #007700">, </span>="color: #DD0000">"while"</span>="color: #007700">, </span>="color: #DD0000">"__FUNCTION__"</span>="color: #007700">, </span>="color: #DD0000">"__CLASS__"</span>="color: #007700">, </span>="color: #DD0000">"__FILE__"</span>="color: #007700">, </span>="color: #DD0000">"__LINE__"</span>="color: #007700">);
</span>="color: #0000BB">$length </span>="color: #007700">= </span>="color: #0000BB">sizeof</span>="color: #007700">(</span>="color: #0000BB">$keywords</span>="color: #007700">);
for (</span>="color: #0000BB">$i </span>="color: #007700">= </span>="color: #0000BB">0</span>="color: #007700">; </span>="color: #0000BB">$i </span>="color: #007700">< </span>="color: #0000BB">$length</span>="color: #007700">; </span>="color: #0000BB">$i </span>="color: #007700">++) {
if (</span>="color: #0000BB">$keyword </span>="color: #007700">== </span>="color: #0000BB">$keywords</span>="color: #007700">[</span>="color: #0000BB">$i</span>="color: #007700">]) {
return </span>="color: #0000BB">true</span>="color: #007700">;
}
}
return </span>="color: #0000BB">false</span>="color: #007700">;
}
function </span>="color: #0000BB">isAConstant</span>="color: #007700">(</span>="color: #0000BB">$constant</span>="color: #007700">) {
</span>="color: #0000BB">$constants </span>="color: #007700">= array(</span>="color: #DD0000">"php"</span>="color: #007700">, </span>="color: #DD0000">"true"</span>="color: #007700">, </span>="color: #DD0000">"false"</span>="color: #007700">, </span>="color: #DD0000">"null"</span>="color: #007700">);
</span>="color: #0000BB">$length </span>="color: #007700">= </span>="color: #0000BB">sizeof</span>="color: #007700">(</span>="color: #0000BB">$constants</span>="color: #007700">);
for (</span>="color: #0000BB">$i </span>="color: #007700">= </span>="color: #0000BB">0</span>="color: #007700">; </span>="color: #0000BB">$i </span>="color: #007700">< </span>="color: #0000BB">$length</span>="color: #007700">; </span>="color: #0000BB">$i </span>="color: #007700">++) {
if (</span>="color: #0000BB">$constant </span>="color: #007700">== </span>="color: #0000BB">$constants</span>="color: #007700">[</span>="color: #0000BB">$i</span>="color: #007700">]) {
return </span>="color: #0000BB">true</span>="color: #007700">;
}
}
return </span>="color: #0000BB">false</span>="color: #007700">;
}
</span>="color: #0000BB">?>