login  Naam:   Wachtwoord: 
Registreer je!
 Forum

soms highlight soms niet

Offline nemesiskoen - 05/04/2005 18:27
Avatar van nemesiskoenGouden medaille

PHP expert
't Is me al enkele keren opgevallen dat iets dat niet gehighlight hoort te zijn wordt gehighlight.
Bijvoorbeeld een JavaScriptje of puur HTML. 'k Heb nu een prt scrn genomen voor de betweters die dit niet willen geloven, of gewoon voor eens aan te tonen.

http://nemesisf...ght_js.JPG

Zoals je ziet is dat JavaScript dat wordt gehighlight. Maar dit is niet altijd zo, als ik op F5 druk (vernieuwen) dan is het terug zwart. Of soms als ik de pagina laad is het standaard zwart (wat het hoort te zijn denkik).
Dit topic slaagt natuurlijk nergens op als ik dit enkel wil medelen.
Maar ik moet zeggen dat ik het veel makkelijker lezen vind als het zoiezo wordt gehighlight. Dus zou het misschien mogelijk zijn, over alles een highlight te gooien (alle code, ook JavaScript).

En nu wordt er door sommige gedacht, ja dat gebeurd ook, alleen word JavaScript standaard niet gehighlight. Wel dan... oftewel is er hier een slim brein dat een idee heeft voor een functie hiervoor (php + javascript/html) highlighten.
Ik heb een klein ideetje hiervoor, maar wss werkt het niet. Eerst voor alles <?php gooien, en dan op't einde dat verwijderen via regex of iets. Maar dat ben ik niet zeker dat dat werkt.

Dus misschien is het een idee om dit toe te passen op het forum, alles highlighten (en mss zelfs de scripts ook) omdat dit echt veel makelijker leest (alleszins, dat vind ik... misschien kan je hier ook even je mening over uiten in dit topic).

*ik ga nu even mijn brein peinigen, en een functie hiervoor proberen te maken *

17 antwoorden

Gesponsorde links
Offline Thomas - 05/04/2005 18:45
Avatar van Thomas Moderator Nou, peinig jij je brein maar ff...

Af en toe wil je gewoon geen highlighting, anders kun je bijvoorbeeld geen onderscheid meer maken tussen HTML en PHP ? Het lijkt mij dat dat het lezen van code alleen maar bemoeilijkt.
Offline vinTage - 05/04/2005 19:22 (laatste wijziging 05/04/2005 19:22)
Avatar van vinTage Nieuw lid Op zich vind ik gehighlighte code ook lekkerder lezen.
Maar ben het ook eens met de stelling dat html niet gehighlight hoeft te worden ivm onderscheid tussen-tussen.

Maar aangezien er op sitemasters meer "code" geplaatst word dan plain html, denk ik dat "alles" highlighten niet verkeerd zou zijn.

En inderdaad heb ik heel soms ook dat er sosm dingen kleur hebben, en bij een volgende blik inneens zwart zijn. (niet geedit, maar gewoon wat nemesiskoen ook al zei)


ps, en wrom moet ik dat weer hebben, dat voorbeeld jpgtje was een stukje dat ik gepost had, kga me alweer schuldig voelen 
Offline Fenrir - 05/04/2005 19:41 (laatste wijziging 05/04/2005 19:41)
Avatar van Fenrir PHP expert Een highlighter: http://qbnz.com/highlighter/
Misschien een idee voor v3 (?): andere code tags:

  1. [code ][ / code]
  2. [code lang="php" ] [ / code]
  3. [code lang="js" ] [ / code]
  4. [code lang="html" ] [ /code]

Offline nemesiskoen - 05/04/2005 19:50 (laatste wijziging 05/04/2005 19:58)
Avatar van nemesiskoen Gouden medaille

PHP expert
*lange zucht*

eindelijk...
na iets meer dan een uurtje forceren en vanalles en nog wa 

http://www.neme...en_php.php

daar is een testversie

zouden de heren zo vriendelijk willen zijn die testversie KIJHARD te hacken (of toch proberen) en dan zeggen wat 'niet' werkt 

EDIT: juist... lol, even vergeten online te zetten... over enkele seconden werkt het

  1. <?php
  2. function highlight_javascript_en_php( $invoer ) {
  3.  
  4. $inv = str_replace("\\", "", $invoer);
  5.  
  6. $inv = str_replace(">", "&gt;", $inv);
  7.  
  8. $inv = "<?phpditisdummytekstdachteerstdatjevahieruitkonhackenblijkbaarniet ". $inv;
  9.  
  10. highlight_string( $inv );
  11. $inv = ob_get_contents();
  12. ob_end_clean();
  13.  
  14. $inv_array = explode( '&lt;?phpditisdummytekstdachteerstdatjevahieruitkonhackenblijkbaarniet', $inv );
  15.  
  16. $inv_array['1'] = str_replace( '&amp;</font><font color="#0000CC">gt</font><font color="#006600">;', '<font color="#006600">></font>', $inv_array['1'] );
  17.  
  18. $inv_array['0'] = explode(' ', $inv_array['0']);
  19.  
  20. $ret = $inv_array['0']['0'].$inv_array['1'];
  21.  
  22. return $ret;
  23.  
  24. }
  25. ?>
Offline Fenrir - 05/04/2005 19:51 (laatste wijziging 05/04/2005 19:52)
Avatar van Fenrir PHP expert Wij kunnen niet in jouw localhost hè? 
Mogen we ook de code? Dat maakt het hacken gemakkelijker.
Offline Fenrir - 05/04/2005 19:59 (laatste wijziging 05/04/2005 20:05)
Avatar van Fenrir PHP expert Invoer:
  1. <?php
  2.  
  3. echo "bla";
  4.  
  5. ?>
  6.  
  7. <html>
  8. <head>


Output:
  1. <?php
  2.  
  3. echo "bla";
  4.  
  5. ?&gt;
  6.  
  7. <html&gt;
  8. <head&gt;


Dus het werkt niet echt. Even de &gt; eruit halen. Wil je ook een .txt online zetten (of je phpfile met deze highlighter highlighten), of is het closed-source?

EDIT: OK. 
Offline nemesiskoen - 05/04/2005 21:54 (laatste wijziging 05/04/2005 22:32)
Avatar van nemesiskoen Gouden medaille

PHP expert
oke, bug fixed
het lag eraan dat ik (localhost) php versie gebruik ONDER 4.2, en mijn server 4.2 gebruikt...
dus vandaar

dus ff

http://www.neme...n_php2.php

dat is de werkende
en de code daarvan is:

  1. <?php
  2. //ob_start();
  3.  
  4. function highlight_javascript_en_php( $invoer ) {
  5.  
  6. $rand_woord = md5( rand() );
  7.  
  8. //$inv = str_replace("\\", "", $invoer);
  9.  
  10. $inv = str_replace(">", "&gt;", $invoer);
  11.  
  12. $inv = "<?php". $rand_woord . $inv;
  13.  
  14. $inv = highlight_string( stripslashes( $inv ), true );
  15. //$inv = ob_get_contents();
  16. //ob_end_clean();
  17.  
  18. $inv_array = explode( '&lt;?php'. $rand_woord, $inv );
  19.  
  20. $inv_array['1'] = str_replace( '&amp;</font><font color="#0000BB">gt</font><font color="#007700">;', '<font color="#006600">></font>', $inv_array['1'] );
  21.  
  22. $inv_array['1'] = str_replace( '<font color="#FF8000">//--&amp;gt;', '<font color="#FF8000">//-->', $inv_array['1']);
  23.  
  24. $inv_array['0'] = explode(' ', $inv_array['0']);
  25.  
  26. $ret = $inv_array['0']['0'].$inv_array['1'];
  27.  
  28. return $ret;
  29.  
  30. }
  31. ?>


dat is voor BOVEN 4.2

en dit is voor ONDER 4.2

  1. <?php
  2.  
  3. function highlight_javascript_en_php( $invoer ) {
  4.  
  5. $rand_woord = md5( rand() );
  6.  
  7. //$inv = str_replace("\\", "", $invoer);
  8.  
  9. $inv = str_replace(">", "&gt;", $inv);
  10.  
  11. $inv = "<?php". $rand_woord . $inv;
  12.  
  13. $inv = ob_get_contents();
  14.  
  15. $inv_array = explode( '&lt;?php'. $rand_woord, $inv );
  16.  
  17. $inv_array['1'] = str_replace( '&amp;</font><font color="#0000CC">gt</font><font color="#006600">;', '<font color="#006600">></font>', $inv_array['1'] );
  18.  
  19. $inv_array['1'] = str_replace( '<font color="#FF8000">//--&amp;gt;', '<font color="#FF8000">//-->', $inv_array['1']);
  20.  
  21. $inv_array['0'] = explode(' ', $inv_array['0']);
  22.  
  23. $ret = $inv_array['0']['0'].$inv_array['1'];
  24.  
  25. return $ret;
  26.  
  27. }
  28. ?>


nog altijd geld dezelfde vraag:

zouden de heren zo vriendelijk willen zijn die testversie KIJHARD te hacken (of toch proberen) en dan zeggen wat 'niet' werkt 


EDIT: de bug van de string is weggewekrt, ik laat nu een random iets aanmaken, zodat je niet hem verder kan laten exploden, ben nu bezig met de error die hieronder wordt vermeld

EDIT2: onderstaande error is weg... maar nu krijg je hetzelfde als hier op de site (www.sitemasters.be/tutorials/highlight.php)(wat ik dus probeerde weg te werken) als je dit doet:
<?php
\\\
?>
geeft hij een error

EDIT3: ook werkt commentaar van html nu optimaal, en wordt hierbij de > geacepteerd als > 
Offline DownForZ - 05/04/2005 22:08 (laatste wijziging 05/04/2005 22:09)
Avatar van DownForZ HTML interesse Als je

<? echo "<input name=\"evenement_begin_minuut\" type=\"text\" id=\"evenement_begin_minuut\" size=\"2\" maxlength=\"2\">"; ?>

dan ignored hij de \  

hij geeft dit weer

<?php echo "<input name="evenement_begin_minuut" type="text" id="evenement_begin_minuut" size="2" maxlength="2"&gt;"; ?>
Offline Rens - 05/04/2005 22:14
Avatar van Rens Gouden medaille

Crew algemeen
  1. <?PHP
  2. if(IsSet($_GET['bla']))
  3. {
  4. echo "Bla is:".$_GET['bla'];
  5. } else
  6. {
  7. echo "Bla is niet geset!";
  8. }
  9. ?>


Geeft een error:

  1. Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/fantasies/domains/nemesisfantasies.com/public_html/functions/highlight_javascript_en_php2.php on line 14
  2. 'bla\']))
Offline nemesiskoen - 05/04/2005 22:20
Avatar van nemesiskoen Gouden medaille

PHP expert
Rensjuh, die error geeft hij nu niet meer, normaal gezien, was op het moment dat jij dat uitvoerde aan het veranderen 
Offline Rens - 05/04/2005 22:20 (laatste wijziging 05/04/2005 22:21)
Avatar van Rens Gouden medaille

Crew algemeen
Haha, ok dan.
Nog eens proberen dan^^

Edit; Inderdaad, de fout is nu opgelost:D
Offline nemesiskoen - 05/04/2005 22:22 (laatste wijziging 05/04/2005 22:26)
Avatar van nemesiskoen Gouden medaille

PHP expert
maar hij geeft nogaltijd een error bij

  1. <?php
  2.  
  3. \
  4.  
  5. ?>


zou ik moeten kunnen oplossen met regexp, maar heb daar spijtig genoeg geen verstand van...

EDIT: ik bedoelde eig \ deze lol, srr, maar als ik die doe, dan geeft hij vieze error

(precies word \ genegeerd op deze site... mooi gedaan FangorN (de UBB is toch van jou, niet?))
Offline Rens - 05/04/2005 22:23
Avatar van Rens Gouden medaille

Crew algemeen
Bij mij geeft ie er geen error bij hoor:s
Als ik die code van jou kopieer en plak, krijg ik gewoon die code te zien...
Offline nemesiskoen - 05/04/2005 22:53 (laatste wijziging 05/04/2005 23:29)
Avatar van nemesiskoen Gouden medaille

PHP expert
'k geef het op 

het zit stampevol bugs
bv.

Citaat:
<table>
echo "<table>";


geeft

Citaat:
<table>
echo "<table&gt;";


en

Citaat:
die


geeft niets weer, zo ook voor alle andere PHP functies... soms geeft hij wel een > weer en soms ook weer helemaal niet... pff en regex is niet mijn ding, over een paar weken/maanden pak ik dit script nog wel is vast 


EDIT: oh yeah, na een half uur zwaar denken werkt dat bovenste ook, buiten de functies, daar moet ik nog iets op vinde, iemand een idee?

hier ff de code

  1. <?php
  2. //ob_start();
  3.  
  4. function highlight_javascript_en_php( $invoer ) {
  5.  
  6. $rand_woord = md5( rand() );
  7.  
  8. //$inv = str_replace("\\", "", $invoer);
  9.  
  10. $inv = str_replace(">", "&gt;", $invoer);
  11.  
  12. $inv = "<?php". $rand_woord . $inv;
  13.  
  14. $inv = highlight_string( stripslashes( $inv ), true );
  15. //$inv = ob_get_contents();
  16. //ob_end_clean();
  17.  
  18. $inv_array = explode( '&lt;?php'. $rand_woord, $inv );
  19.  
  20. $inv_array['1'] = str_replace( '&amp;</font><font color="#0000BB">gt</font><font color="#007700">;', '<font color="#006600">></font>', $inv_array['1'] );
  21.  
  22. $inv_array['1'] = str_replace( '<font color="#FF8000">//--&amp;gt;', '<font color="#FF8000">//-->', $inv_array['1']);
  23.  
  24. $inv_array['1'] = str_replace( '&amp;gt;', '<font color="#DD0000">></font>', $inv_array['1']);
  25.  
  26. $inv_array['0'] = explode(' ', $inv_array['0']);
  27.  
  28. $ret = $inv_array['0']['0'].$inv_array['1'];
  29.  
  30. return $ret;
  31.  
  32. }
  33. ?>
Offline Thomas - 06/04/2005 10:09 (laatste wijziging 06/04/2005 10:10)
Avatar van Thomas Moderator Als je de volgende code probeert, krijg je syntax-highlighted Warnings .

  1. <?php
  2. echo "' \" \\"; // test
  3. echo '" \ \\ \''; // test
  4. echo "\' \\" \\\""; // test
  5. ?>


Hmm - hier gaat het ook niet helemaal goed .

Raar dat ie een enkele backslash weggooit, maar ik hoef mij code niet zo te schrijven dat ie foutieve PHP-code goed afdrukt, niet ?
Offline nemesiskoen - 10/04/2005 17:08
Avatar van nemesiskoen Gouden medaille

PHP expert
eigelijk niet nee, da's zeker waar
maarja, als er nu iemand foutieve php code heeft geschreven en vind de fout niet, en vraagt dit op het forum en het ziet er juist uit. Dan gaat iedereen zeggen dat het juist is, en is de persoon niet geholpen.
Offline Sean - 10/04/2005 17:33
Avatar van Sean PHP interesse Je kunt de VIM highlighting hier toepassen, zoals ze het bijv. op http://nopaste.php-q.net hebben gedaan.

Best handig 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.309s