svamp Skrevet 16. august 2004 Del Skrevet 16. august 2004 -i alle fall om man bruker strict doctype. Da mener jeg f.eks highlight_file-funksjonen Går det an å endre på måten HTML-koden blir skrevet på? Slik den er nå er det jo umulig å få validert koden sin i et dokument med highlight.. Lenke til kommentar
Lokaltog Skrevet 16. august 2004 Del Skrevet 16. august 2004 Dette er min variant, som skriver pen og validert kode. function highlight($string, $linenumbers = false) { echo '<pre class="code">'; $source = highlight_string($string, true); $search[0] = '<font color="'.ini_get('highlight.html').'">'; $search[1] = '<font color="'.ini_get('highlight.default').'">'; $search[2] = '<font color="'.ini_get('highlight.keyword').'">'; $search[3] = '<font color="'.ini_get('highlight.string').'">'; $search[4] = '<font color="'.ini_get('highlight.comment').'">'; $search[5] = '</font>'; $search[6] = '<br />'; $search[7] = '\r'; $search[8] = ' '; $search[9] = '<code>'; $search[10] = '</code>'; $replace[0] = '<span class="html">'; $replace[1] = '<span class="default">'; $replace[2] = '<span class="keyword">'; $replace[3] = '<span class="string">'; $replace[4] = '<span class="comment">'; $replace[5] = '</span>'; $replace[6] = "\r\n"; $replace[7] = ''; $replace[8] = ' '; $replace[9] = ''; $replace[10] = ''; $source = str_replace("\n", "", $source); $source = str_replace($search,$replace,$source); $search[0] = '<?php'; $search[1] = '?>'; $replace[0] = '<span class="string"><?php</span>'; $replace[1] = '<span class="string">?></span>'; $source = str_replace($search,$replace,$source); if($linenumbers) { $lines = explode("\n",$source); $counter = 1; foreach($lines as $item) { switch(strlen($counter)) { case 1: { echo('<span class="line">'.$counter.' </span> '.$item); $counter++; break; } case 2: { echo('<span class="line">'.$counter.'</span> '.$item); $counter++; break; } default: { echo('<span class="line">'.$counter.'</span> '.$item); $counter++; break; } } } } else echo $source; echo '</pre>'; } Den funksjonen som fikser linjenummere er IKKE optimal (derfor false som standard). Resten hentet jeg fra manualen og modifiserte. Du må ha et CSS-ark med klassene som er i kodebiten over. Lenke til kommentar
svamp Skrevet 17. august 2004 Forfatter Del Skrevet 17. august 2004 (endret) Takk for koden! Jeg har skiftet ut highlight_string med highlight_file, det går vel bra? Jeg får en feilmelding; Warning: Wrong parameter count for highlight_file() in (path)1.php on line 5 Du kan se selv her. Noen som vet hvorfor feilmeldingen kommer? Har prøvd å ta vekk "true" fra highlight_file($string, true); men da ble bare den "dårlige" versjonen av highlight-koden brukt. Edit: Line 5 er linje 4 i posten til Lokaltog. Endret 17. august 2004 av svamp Lenke til kommentar
Lokaltog Skrevet 18. august 2004 Del Skrevet 18. august 2004 Jeg får en feilmelding;Warning: Wrong parameter count for highlight_file() in (path)1.php on line 5 Du kan se selv her. Parameter nummer to ble ikke tilgjengelig før PHP 4.2.0, hvis du har en tidligere versjon enn denne fungerer ikke highlightscriptet mitt med mindre du implementerer OB-kontroll i funksjonen. Lenke til kommentar
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å