Yankes Skrevet 18. desember 2007 Skrevet 18. desember 2007 <?php $side = $_GET['side']; function PHP_kode($fil) { $fil = file($fil); echo("<div>"); foreach ($fil as $linje => $resultat) { echo("<code>" . ($linje + 1) . " "); highlight_string($resultat); echo("</code>"); } echo("</div>"); } PHP_kode($side); ?> Resultatet blir at alle linjene i PHP fila blir skrevet med linjenummer og alt, men kun den øverste linja (linje nummer 1) blir farget med highlight_string()
Martin A. Skrevet 18. desember 2007 Skrevet 18. desember 2007 (endret) <?php $side = $_GET['side']; function print_php_code($str, $type) { switch ($type) { case "text": $str = highlight_string($str, true); break; case "file": $str = highlight_file($str, true); break; } $str = explode("<br />", $str); echo "<div>"; echo "<ol>\n"; foreach ($str as $line => $syntax) { if( trim( $syntax ) == "" ) { echo "<li></li>"; continue; } echo "<li><code>" . $syntax . "</code></li>"; } echo "</ol>\n"; echo "</div>"; } print_php_code( $side, 'file' ); ?> Bruker å stå mye interesant i kommentarene i manuelen Edit: Forbedret den litt Endret 18. desember 2007 av M4rTiN
Yankes Skrevet 18. desember 2007 Forfatter Skrevet 18. desember 2007 Bruker å stå mye interesant i kommentarene i manuelen Ja, er jo akkurat det scriptet der jeg har brukt, men fikk det ikke til å funke, hverken sånn det var eller med mine PHP skillz men skal prøve din versjon
Yankes Skrevet 19. desember 2007 Forfatter Skrevet 19. desember 2007 (endret) funka fint det, men.. Scriptet ser nå sånn ut: <?php $side = $_GET['side']; function print_php_code($str, $type) { switch ($type) { case "text": $str = highlight_string($str, true); break; case "file": $str = highlight_file($str, true); break; } $str = explode("<br />", $str); $i = 1; echo "<div>"; foreach ($str as $line => $syntax) { echo "<code><font color=black>" . ($line + 1) . "</font></code>"; echo "<code>" . $syntax . "</code>"; } echo "</div>"; } print_php_code( $side, 'file' ); ?> Problemet er at nå blir alt skrevet på ei linje, men linje nummreringa funker. Blir sånn: 1 <?php 2 3 // setter opp funksjonen o.s.v. Men hvis jeg setter på <br> i echo'n min så blir det linjeskifte, men da fucker den <code> greia seg og skriver ut koden med Times New Roman elns!? Endret 19. desember 2007 av YaNkEs
kakkle Skrevet 19. desember 2007 Skrevet 19. desember 2007 Dette scriptet avhenger jo av at du har <br /> ved slutten av hver linje, da.. det er jo slett ikke sikkert du har, da... Prøv denne istedet: $str = explode("\n", $str); Evt bruk nl2br på $str, kanskje ?
Yankes Skrevet 19. desember 2007 Forfatter Skrevet 19. desember 2007 Prøvde begge delene, ingen av dem funka (sånn jeg gjorde det hvertfall)
Martin A. Skrevet 19. desember 2007 Skrevet 19. desember 2007 Hvorfor kan du ikke bare bruke det jeg la ut? Det gjør akkurat det du ønsker. Alle linjene med fargesyntax, og linjenummer.
Yankes Skrevet 19. desember 2007 Forfatter Skrevet 19. desember 2007 (endret) Hvorfor kan du ikke bare bruke det jeg la ut? Det gjør akkurat det du ønsker. Alle linjene med fargesyntax, og linjenummer. Sant det, men den <code> greia blir fucka og det blir skrevet ut med feil font! Times New Roman elns!? EDIT: pluss at linjenummerene stemmer ikke helt heller.. Endret 19. desember 2007 av YaNkEs
Runar0 Skrevet 19. desember 2007 Skrevet 19. desember 2007 Er da ingen problem å endre standar fonten i <code> ved hjelp av css, eventuelt bare ta vekk <code> i fra koden?
grimjoey Skrevet 19. desember 2007 Skrevet 19. desember 2007 (endret) edit: <?php $side = $_GET['side']; ob_start(); $hmm = highlight_file($side, true); echo $hmm; $ob = ob_get_contents(); ob_end_clean(); $a = explode("<br />", $ob); $f = ''; $nbsp = ' '; $j = 0; $count = count($a); $spa = ''; while($count > 1) { $count = $count / 10; $j++; $spa .= $nbsp; } $j = 10*pow(10, $j); foreach($a as $nummer => $tekst) { $num = $nummer+$j+1; $num = substr($num, 1); if(!(int)$num) $num = substr($spa, 6).'<font color="#000000">1'; else { $i = 0; $sp = ''; while(!(string)$num{$i}) { $i++; $sp .= $nbsp; } $num = substr($num, $i); $num = substr($sp, 0, -6).$num; } $f .= '<code><font color="#000000">'.$num.'</font></code> '.$tekst.'<br />'; } echo $f; ?> Endret 25. desember 2007 av grimjoey
Yankes Skrevet 25. desember 2007 Forfatter Skrevet 25. desember 2007 Funka fint det grimjoey, men første linje skal starte på 1 og ikke 0 som i ditt script!
grimjoey Skrevet 25. desember 2007 Skrevet 25. desember 2007 (endret) nå har jeg endret scriptet ovenfor til å vise 1 som første linje. Endret 25. desember 2007 av grimjoey
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå