webForumDet fria alternativet

Funktion för att färga php kod...

PHP

5 svar · 262 visningar · startad av Ricki

Medlem sedan juni 2000373 inlägg
Frågan#1

Tjena,
Här på wF används ju en funktion för att färga och även länka funktioner för php kod... Är det en inbyggd funktion som man bara kan plocka upp och använda eller? Jag tyckte jag läste det någon stans....

Medlem sedan aug. 20002 975 inlägg
#2

Vill du på en sida visa php-koden för en fil kan du använda:

<?php
show_source("sida.php");
?>
Medlem sedan jan. 200293 inlägg
#3

sida.phps funkar fint me...

Medlem sedan juni 2000373 inlägg
#4

F_I_C skrev:

sida.phps funkar fint me...

Vad menar du? Att man kan köra vilken fil som helst lr? :l

Medlem sedan nov. 2000857 inlägg
#5

Tjena Ricki!

Här en kod som nicclas skrivit. Den länkar alla funktioner direkt till manualen på php.net... ;)

http://www.niklasson.net/wf/funktioner.php

Medlem sedan aug. 20002 975 inlägg
#6

En annan variant. Med lite hjälp av sökfunktionen på webForum och manualen, fick jag ihop det här som även färgar koden:

<?php

function highlight($string){

  $allfuncs = get_defined_functions();
  $searches = array();
  $replaces = array();
  foreach ($allfuncs['internal'] as $name) {
    $searches[] = "/([^a-z])$name( {0,1})<\/font><font color=\"\#006600\">\(/i";
    $replaces[] = "\\1<a href=\"http://www.php.net/$name\" target=\"_blank\">$name</a>\\2(";
  }

  $strArray = preg_split("/\[code]/i", $string);
  $string = "$strArray[0]";

  for($i=1; $i<sizeof($strArray); $i++){

    $strArray[$i] = preg_split("/\[\/code]/i", $strArray[$i]);

    if ( strpos( $strArray[$i][0], '<?' ) === FALSE ){
      $strArray[$i][0] = highlight_string("<?". $strArray[$i][0] ."?>", TRUE);
      $strArray[$i][0] = str_replace(array(">?", "<?"), "", $strArray[$i][0]);
    } else {
      $strArray[$i][0] = highlight_string($strArray[$i][0], TRUE);
    }
		
    $strArray[$i][0] = preg_replace("/<br \/>(.*)/", "$1", $strArray[$i][0]);
    $strArray[$i][0] = "\n<div class=\"code\">\n".$strArray[$i][0]."\n</div>\n";
    $strArray[$i][0] = preg_replace($searches, $replaces, $strArray[$i][0]);
		
    $string .= implode("", $strArray[$i]);

  }		
  return $string;
}

// Och så här används den

$text="Lite text innan
[code]
<?php 
highlight_string(\"Hej\");
?>
[/code]
och lite mer PHP
[code]
<?
echo \"Hej\";
?>
[/code]";

$text = highlight($text);

echo $text;

?>

Det du vill ha som kodblock lägger du inom


.

292 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
156 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
155 ms — ändringar (db)