Hallo;
Ik heb hier via jullie site een scriptje gevonden om php te highlighten.
Ik heb dit gebruikt maar ik ben nu van plan dit ook voor javascript te gebruiken (zodat daar ook vanalles een kleurtje krijgt)

dit heb ik er ongeveer van gemaakt:
<?php
function highlight($code) {

// functie om javascript en html ook te highlighten:
//html opzetten (zodat je < en > ziet)
$code = str_replace("&lt;", "<", $code);
$code = str_replace("&gt;", ">", $code);

// geschreven phptags naar ascii zetten:
$code = preg_replace("#<\?php|<\?PHP|<\?#", "HIERBEGINPHPCODEdiewordomgezetsecretword", $code);
$code = str_replace("?>", "HIEREINDEPHPCODEdiewerdomgezetsecretword", $code);
//zorgen dat het highlighten niet stopt bij </script>
$code = str_replace("</script>", "</script><?php", $code);

$code = "<?php".$code."?>";

$source = highlight_string($code, true);
$source = explode('<br />',$source);

for ($i = 0; $i < count($source); $i++) {
$source[$i] = "<tr><td><code><font color='black'>".($i + 1)."</font></td><td width='100%'>".$source[$i];
}

$source = implode('</code></td></tr>',$source);

// zorgen dat alles juist word weergegeven
$source = preg_replace("#\&lt;\?php#", "", $source);
$source = str_replace("?&gt;", "", $source);
$source = str_replace("HIERBEGINPHPCODEdiewordomgezetsecretword", "<font color='#000000'><font color='#0000BB'>&lt;?php</font>", $source);
$source = str_replace("HIEREINDEPHPCODEdiewerdomgezetsecretword", "<font color='#000000'><font color='#0000BB'>?&gt;</font>", $source);


$bron = "<br /><table align='center' bgcolor='lightgray' bordercolor='#00CC00' width='75% border='1' cellspacing='0' cellpadding='0''>".$source."</table><br />";

return $bron;
}
?>

maar nu is het probleem:
er worden woorden/functies/haken niet omgezet in kleuren, weet iemand hoe dit komt en weet er misschien ook iemand hoe ik dit script beter kan maken??

hier even de link naar een voorbeeldje: http://veewee.depas.be/testje.php


Dank!
Dit komt door je HTML opmaak..

Je gebruikt <tr><td>nummer</td><td>regels</td></tr>

Het probleem is dit.. Als er aan het einde van een tabel rij groen wordt gebruikt, en op de volgende regel ook weer groen, dan zegt hij niet <font color=groen>regel1</font><font color=groen>regel2</font> maar laat hij de <font> tag open staan..

Door dat je steeds weer een andere <td> gebruikt, wordt die <font> niet doorgegeven naar de volgende rij.. Hoop dat ik het een beetje goed uitleg :)

Trouwens, netter zou zijn om alle fonts te vervangen door <span>'s, want <font> bestaat niet :P das een internet explorer verzinsel :)
ja ik begrijp wat je bedoeld
moet ik dan ook alle <font color> omzetten naar
<span color> of moet ik <span style="color:..."> gebruiken?
kijk eens op Handleiding HTML

[citaat Handleiding HTML]
In het volgende voorbeeld wordt voor het DIV element een inline stijl gedefinieerd met behulp van het STYLE attribuut.

<DIV STYLE="color: red; background-color: white;">
<H2>Dit is H2</H2>
<P>Deze tekst is ingesloten door het P element.</P>
</DIV>
[/citaat]

ik weet niet of dat is wat je zoekt en/of Bas dit bedoelt...
NeeJ Bas bedoelt <span> :)
Ik heb op de hierboven vermelde site gekeken bij <span> en hij gaf ook die tag door
ik had het met span geprobeert maar het gaf hetzelfde resultaat als toen ik met de tabellen werkte, nu heb ik het dan maar gewoon op de font-tags gehouden (deze worden normaal toch uitgelezen :) )
bedankt voor de hulp allessinds
...nu heb ik het dan maar gewoon op de font-tags gehouden...


En maar niet willen luisteren als anderen het goed met je voor hebben...

Trouwens, netter zou zijn om alle fonts te vervangen door <span>'s, want <font> bestaat niet :P das een internet explorer verzinsel :)
lees dan ook eens wat ik geschreven heb:

ik had het met span geprobeert maar het gaf hetzelfde resultaat als toen ik met de tabellen werkte


als je dan alles had gelezen dan had je geweten dat ik niet op het juiste resultaat uitkwam als ik met span werkte --> daarom houd ik het maar gewoon zo
als je dan alles had gelezen dan had je geweten dat ik niet op het juiste resultaat uitkwam als ik met span werkte --> daarom houd ik het maar gewoon zo


je kwam het zelfde resultaat uit, maar toch kies je voor het slechte resultaat... DAT is het punt :)

Reageren