PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Regexp, templating, escape backslash
Postitaja: GHz 2014-10-15 11:41:03
Tervitused!

Üritan siin mõnda aega regexp'i kokku ajada, aga vot ei tule välja kuidagi.

Nimelt teen pisikest template engine'it, mille puhul tegelikult tehakse php süntaks vaid mugavamaks.
Nimelt mida see täpsemalt teeb on vaid see et asendab { ja } märgi <? ja ?> vastu.

Aga, ma tahaks escape char'i funktsionaalsust ka lisada. Ehk, kui mul on template:
{=$a}\{=$b\}
Siis sellest saab:
<?=$a?>{=$b}
Ehk siis, teisel puhul ei tehtud replace'imist. Nii saan ma vajadusel ikkagi { ja } märki kasutada ilma probleemideta.

Millega on veidi probleeme, on see, et ma ei oska replace'ida regex'iga, et reegliks oleks "asenda kõik { märgid <?'ga, kui ees ei ole \"

Ehk oskab keegi veidi juhendada?
RE: Regexp, templating, escape backslash
Postitaja: ise php 2014-10-15 12:47:30
Märgiks ära, et <? ei pruugi igas serveris toimida, kindlam on <?php
RE: Regexp, templating, escape backslash
Postitaja: GHz 2014-10-15 13:14:11
Nõus, et short_tags ei pruugi igal pool sees olla. Uuemast php'st alates on see vist ka sees ja nii, et ei saagi välja lülitada.

Lisaks sellise kompatiibel mõistes tuleks ka {=$blah} sees võrdusmärk asendada echo'ks.
RE: Regexp, templating, escape backslash
Postitaja: blaa 2014-10-15 13:53:52
alati on võimalus asendada kõigepealt \{ näiteks SELLEGA ja \} TOLLEGA
ning pärast SELLEGA -> { ja TOLLEGA -> }
RE: Regexp, templating, escape backslash
Postitaja: GHz 2014-10-15 13:58:29
Mõtlesin ise ka selle peale... Aga tundub selline kirkaga hamba parandamise moodi... :P
RE: Regexp, templating, escape backslash
Postitaja: LeoKunnas 2014-10-15 18:03:34
TSITEERITUD:
Mõtlesin ise ka selle peale... Aga tundub selline kirkaga hamba parandamise moodi... :P
vabanda, aga kogu see üritus tundubki pisut selline kirkaga tegelemine, mis vahe on kasutaja jaoks, kas ta toksib koodi: <?php echo __FILE__; ?> või siis nn. fancylt: { echo __FILE__; }

ma ise eelistaks ikka esimest varianti, on arusaadavam, mis toimub
RE: Regexp, templating, escape backslash
Postitaja: ise php 2014-10-15 19:12:38
Sellised lihtsad asjad kindlasti. Mõte tekkib alles siis, kui on sisse viidud mingid suuremad funktsioonid näiteks saad kirjutada {user_name} suvalisse kohta ja viskab sinna sisselogitud kasutajanime või midagi selles stiilis {news} ja täidetakse div või mõni muu ala uudistega, mis võetud andmebaasist.
RE: Regexp, templating, escape backslash
Postitaja: GHz 2014-10-16 09:10:37
LeoKunnas, vahe on ikka
<?php echo __FILE__; ?>
vs
{=__FILE__}

Ja ikka natuke on vahet küll. Vähem kirjutamist ja suurem "sund" php alternatiivse süntaksi poole. Uut keelt ma ei leiuta, küll aga tahan php süntaksit kasutada mugavamalt.
RE: Regexp, templating, escape backslash
Postitaja: ise php 2014-10-16 12:26:08
Nagu juba ennem mainisin, siis echo $a; stiilis pole mõtekas asja ehitada, see tulebki nagu dubleeritud php süntaks, mõistlik oleks valmis funktsioonide väljundid teha. Võimalik, et eksin, kuid mulle tundub, et sellist stiili on vaja template meistrite jaoks, kes uusi kujundusi meisterdavad, et oleks html lehest parem ülevaade.
RE: Regexp, templating, escape backslash
Postitaja: GHz 2014-10-18 18:01:36
Ise-enesest lahendasin probleemi nii, nagu seda Smarty template teeb. Kui peale avamismärki ({) on mõni whitespace täht või reavahetus vmt, siis seda ei parse'ita, kui aga tuleb kohe mingi "kraam", siis hakatakse parse'ima.
{=$a} <- echo'b välja
{ =$a} <- ei tehta midagi, jääb täpselt nii


Kuigi ise-enesest pole see probleem mulle enam aktuaalne, oleks ikka huvitav teada, kuidas implementeerida "escape character" regex'ina. Saaks sellegi poolest targemaks. :)
RE: Regexp, templating, escape backslash
Postitaja: blaa 2014-10-20 00:26:53
RE: Regexp, templating, escape backslash
Postitaja: GHz 2014-10-20 07:13:30
Väga vahva, tänud! Ise mingil põhjusel ei suutnud selle teemani ennast googeldada...

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0806758403778