Toon posts:

[php] commentaar uit php code knippen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een script aan het maken die al het commentaar uit php code knipt. Maar dat is niet zo makkelijk als er commentaar aan het einde van een regel staat.

Ik had een script gemaakt dat het commentaar wegknipte in regels als:
PHP:
1
2
3
4
5
6
7
8
<?
$naam = "Femme";   // dit is de naam
en
if($naam == "")    // naam is leeg
en
if($naam == "")
{  // doe iets
?>

maar het ging fout in code als
PHP:
1
2
3
<?
$ozin = "test// en nog meer";
?>

Een logisch vervolg is om een script te maken dat alleen kijkt naar // tekens na de laatste ; of ) of { of }. Maar dat gaat weer fout bij code als
PHP:
1
2
3
<?
$naam = "Jan";   // dit is de naam (deze mag niet leeg zijn)
?>

Kortom, er zijn nogal veel dingen om rekening mee te houden. En de vraag is dus: wat is een slimme manier om al het commentaar uit een lap code te verwijderen. (wellicht iets met regexen ofzo?)

  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 10-09 23:27
Misschien een hele stomme vraag hoor..
Maar waarom zou je je commentaar uit je code willen knippen :?
Met alle beste wil van de wereld kan ik daar geen goede/geldige reden voor bedenken...

  • oogapp0ltje
  • Registratie: Januari 2001
  • Niet online
waarschijnlijk voor een eval() functie

| To acknowledge what is known as known and what is not known as known is knowledge. |


  • Grum
  • Registratie: Juni 2001
  • Niet online
vergeet dingen als dit niet:
PHP:
1
2
3
4
5
6
7
<?
doStuff(); /*
doStuff();  * Je bent blij dat je nu 
doStuff();  * leuke syntax kleuren hebt >:)
doStuff();  */
doStuff();  
?>

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op woensdag 27 februari 2002 17:53 schreef Ravenof het volgende:
waarschijnlijk voor een eval() functie
Zou die geen rekening houden met commentaar?

In ieder geval, ik denk dat in een PHP script het enige moment waarop // niet als commentaar wordt gezien is in een string. Je moet dus een regexp hebben als
code:
1
//([.^\"^\']*?)$

maar geen idee of dit kan eigenlijk (met die ^ achter elkaar)

  • Grum
  • Registratie: Juni 2001
  • Niet online
hhhehe

dit word een GROTE regexp :)

regeltje of 30-40 ofzo als je em netjes comment ? :P

* Grum plant een tomaten zaadje

Verwijderd

Topicstarter
Op woensdag 27 februari 2002 17:48 schreef Martin Sturm het volgende:
Misschien een hele stomme vraag hoor..
Maar waarom zou je je commentaar uit je code willen knippen :?
Met alle beste wil van de wereld kan ik daar geen goede/geldige reden voor bedenken...
Om daarna alle inspring tabs en spaties weg te halen (trim) en alle \n weg te halen en nog wat grappen om mn code iets minder makkelijk te lezen te maken. Handig als de code op een vreemde server staat, en ik heb geen >$2000 voor Zend encoder over (jaja, ik weet dat dat wel beter is) :)

Weet iemand nog een andere optie?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik zou hier maar een goede parser-generator voor uit de kast trekken :P . Dit los je niet op met wast geregexp...

Volgens mij heb ik wel eens grammatica's voor PHP gezien (jaja, zelfs PHP heeft een grammatica ;) ). Als je die gebruikt kan je heel simpel al het commentaar uit de abstract syntax tree plukken en daarna de zaak weer pretty-printen.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Grum
  • Registratie: Juni 2001
  • Niet online
niet mekkeren ?
je code is toch niet speciaal ... (en dan doel ik er dus niet op dat je code slecht is of dat ik/iemand et beter kan) maar wat jij kan maken in php kan iemand anders ook.

Verwijderd

Op woensdag 27 februari 2002 18:07 schreef sjaan het volgende:

[..]

Om daarna alle inspring tabs en spaties weg te halen (trim) en alle \n weg te halen en nog wat grappen om mn code iets minder makkelijk te lezen te maken. Handig als de code op een vreemde server staat, en ik heb geen >$2000 voor Zend encoder over (jaja, ik weet dat dat wel beter is) :)

Weet iemand nog een andere optie?
dat is nou niet echt een reden waar ik zo snel aan gedacht had :)
maar ik vind het een slechte. Het maakt niet uit hoe onleesbaar de code is gemaakt, er is altijd weer wat leesbaars van te maken. Bovendien kan ik me niet voorstellen dat je een zo speciale code kunt schrijven dat ie topgeheim moet blijven (dat kan bijna niemand denk ik) (MySQL wachtwoorden enz. uigezonderd)

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Ook een manier om je code redelijk 'onbruikbaar' te maken:
Geef al je variabelen en functies onlogische/tegenovergestelde/misleidende namen.. >:)
Niet dat ik het zelf ooit gedaan heb of nodig had, maar het lijkt me wel leuk om het een keer te proberen.. maar waarschijnlijk snap je op het laatst zelf je eigen code niet meer :)

On track


Verwijderd

Ik heb zoiets wel een keer in pascal moeten maken voor op school... je moet door iedere regel van het bestand lopen en dan een variabale bijhouden of je in commentaar zit of niet, en dan nog wat speciale dingen, zoals of het commentaar is wat op 1 regel staat (//) of dat het uit meerdere regels kan bestaan... ga je gang :)

edit:
Je moet dus wel iedere char per regel stuk voor stuk afgaan of het comentaar teken is en dan vergelijken met de waarden van die variabelen die je bijhooud >:)
Pagina: 1