Automatische highlighter voor PHP bestanden

Door - -, 21 jaar geleden, 3.279x bekeken

Een simpele highlighter om alle bestanden in een bepaalde map automatisch te laten highlighten.

Voordeel:
werkt met ieder systeem, mits alle geüploadde PHP bestanden in dezelfde directory staan.

To-do-list:
- Ondersteuning voor highlighting van CSS, HTML, JavaScript, SQL e.d.
- Alles selecteren (en eventueel kopiëren) knop.
- Download knop.
- Fullscreen knop.
- Print knop.

Let op:
In dit script ga ik er van uit dat je alle bestanden uit de map upload wilt automatisch highlighten, wil je een andere directory, dan moet je het aanpassen.
Ook is de HTML niet valid en oersimpel, dat ga je zelf maar lekker aanpassen.
Daarnaast heb je htaccess nodig, en moet de module mod_rewrite aanstaan.

Voorbeeld:
Hier zie je het meest simpele voorbeeld (zoals het script in werkelijkheid ook is), en hier zie je het script werkend binnen OpenTrivia. Ik zal later de source aan OpenTrivia doorgeven, met installer enzo.

Edit:
- Paar textuele wijzigingen en typos.
- Willen jullie je mening geven?
- Voorbeelden toegevoegd.
- Output buffering eruit gesloopt.
- Ik ben nu al een poosje bezig met versie 2.0, ik zal z.s.m. meer erover alten horen! Wie nog iedeën heeft voor versie 2.0 moet het natuurlijk even zeggen!

Voorbeeld: http://www.phphulp.jonathanhogervorst.com/highlighter/upload

Gesponsorde koppelingen

PHP script bestanden

  1. automatische-highlighter-voor-php-bestanden

 

Er zijn 11 reacties op 'Automatische highlighter voor php bestanden'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


21 jaar geleden
 
0 +1 -0 -1
Waarom moet ik perse .htaccess hebben en mod_rewriten.
Waarom gebruik je output buffering?
Henk
Henk
21 jaar geleden
 
0 +1 -0 -1
1.: Klik. (Firefox 2, Mac)
2.: Dit kan mooier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
      ob_start();
      highlight_file($file);
      $highlighted = ob_get_contents();
      ob_end_clean();
?>
=>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
      $highlighted
= highlight_file ( $file, true );
?>
3.: Dit is ook wel leuk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    $spaces
= strlen(count($lines)) - strlen($lineID + 1);
    for ($i = 0; $i < $spaces; $i ++)
    {

        echo '&nbsp;';
    }

?>
Maar waarom niet text-align: right;?
4.: Ik snap het nut van je .htaccess niet helemaal, maar waarom niet zo?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
RewriteEngine On
RewriteRule ^upload/(.*).php(.*)$ highlighter.php?file=$1.php$2
- -
- -
21 jaar geleden
 
0 +1 -0 -1
@Webmakerij:
htaccess en mod_rewrite heb je nodig omdat automatisch alle PHP bestanden uit een directory gehighlighted worden, en output buffering... Blijkt ook anders te kunnen.

@Henk:
1: raar.
2: ok, bedankt voor de tip.
3: werkte bij mij niet raargenoeg.
4: daar zouden veiligheidsrisicos in kunnen zitten, ik denk er nog even over na.

Edit:
@Henk:
2: Ik heb de output buffering eruit gesloopt.
4: Ja, dit is bijvoorbeeld een risico: je hebt een PHP bestand, genaamd index.php, van 50 KB, want iemand heeft zijn hele site in één bestand. Te lang dus om te highlighten, dat worden duizenden regels. Dus bedenkt hij: ik ZIP het. De ZIP noemt hij index.php.zip, waardoor je OS het als een ZIP ziet, maar htaccess zal het als een PHP zien. Er is vast wel een oplossing voor, daar ga ik naar op zoek, want deze manier is niet helemaal oké.
Arend a
Arend a
21 jaar geleden
 
0 +1 -0 -1
Dit is natuurlijk veel mooier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
$PHPexts
= "/^php[1-5]?$/i";
if (preg_match($PHPexts, $ext)) {
..
}

?>


RewriteEngine On
RewriteRule ^upload/([\w\.]+.php[1-5])$ highlighter.php?file=$1
(.*) geeft volgens mij eventuele rare problemen met directory traversal.

Maar volgens mij wordt de php[versienummer] syntax niet meer gebruikt, de enige die ik volgens deze syntax ken is .php3. bestanden. Ook lijkt het syntaxen van .phps bestanden be zinloos omdat dit juist al gesyntax-highlighte bestanden zijn.
- -
- -
21 jaar geleden
 
0 +1 -0 -1
@Arend:
Aangezien er veel gedoe over komt: vanaf nu alleen ondersteuning voor .php. Wie gebruikt er nou nog .php3 ofzo?
Eric Cartman
Eric Cartman
21 jaar geleden
 
0 +1 -0 -1
Wat maakt het uit welke extensie een php bestand heeft? Als ik mijn website heb geschreven met de extensie .cartman (na-aper!) moet ik eerst alle extensies om gaan zetten in .php. Een extensie is ook niet alles!

Controleer gewoon op MIME-type... Dat doet je browser als het goed is ook. Een plaatje met een JPEG MIME-type en de extensie .php opent hij echt niet in bijvoorbeeld Zend Studio.

Verder vind ik je een beetje dom doen met je "want een gek heeft zijn hele site in één bestand" en je "Welke gek gebruikt nog .php3 ofzo". Die mensen zijn geen gekken, maar doen het gewoon op hun manier en daar mag je best respect voor hebben, want dat vind je toch zo belangrijk?
- -
- -
21 jaar geleden
 
0 +1 -0 -1
@Cartman:
Deze highlighter is bedoelt om bepaalde bestanden, die je voor anderen toegankelijk wilt maken, te highlighten. Als jij anderen een bestand wilt laten zien, zul je niet je eigen extensie (.cartman) gebruiken, maar je sult de extensie gebruiken die op iedere server werkt (.php).
Verder kan htaccess niet op MIME-type controleren zover ik weet.
Ok, ik zal dat gek weghalen, omdat jij het bent.
Arend a
Arend a
21 jaar geleden
 
0 +1 -0 -1
Cartman: dan heb ik voor jou een uberspeciale patch voor dit script zodat het werkt op je .cartman extensies.

Verander:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? if ($ext == 'php') ?>


in

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? if ($exit == 'cartman') ?>


Nou, die vier toetsen inrammen wordt door elk toetsenbord ondersteund, in tegenstelling tot magic mime!
1337h4x0r
1337h4x0r
21 jaar geleden
 
0 +1 -0 -1
Quote:
[...] maar je sult [...]


welke gek gebruikt nou weer msn taal?
welke gek zegt dat Cartman geen gelijk heeft?

gek!?

GEK!
Fred Binnenpret
Fred Binnenpret
21 jaar geleden
 
0 +1 -0 -1
@mac, firefox:
misschien helpt een algemeene line-height... dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
table.code .linenumbers, table.code .code { line-height:16pt;}
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Eric Cartman
Eric Cartman
21 jaar geleden
 
0 +1 -0 -1
Dankjewel voor je patch Arend, maar het werkt voor geen flikker... En zoals je zelf (heel misschien dan) ook wel zou kunnen begrijpen is dat niet erg dynamisch, of wel?

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. automatische-highlighter-voor-php-bestanden

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.