Latte makro prekladu vypisuje chybu, ak obsahuje | (zvislú čiaru)
- bojno
- Člen | 8
Zdravíčko,
pri použití Latte makra {_} mi vypisuje chybu
Nette\Utils\RegexpException #2
Backtrack limit was exhausted (pattern: ~^ ( (?P<name>\?|/?[a-z]\w*+(?:[.:]\w+)*+(?!::|\())| ## ?, name, /name, but not function( or class:: (?P<noescape>!?)(?P<shortname>/?[=\~#%^&_]?) ## [!] [=] expression to print )(?P<args>.*?) (?P<modifiers>\|[a-z](?:'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"|[^'"]+)*)? ()$~isx)
v prípade, že v makre použijem | (zvislicu)
{_'Bla bla asdfa|abdsaf|bb hah hih.'}
Keď ju nepoužijem, šlape to správne.
Prosím čeknite to u Vás, či Vám v takomto prípade robí chybu
tiež…
Je pre mňa dosť dôležité, aby tam tá zvislá čiara išla zapísať…
Kód
{_}Bla bla asdfa|abdsaf|bb hah hih.{/_}
funguje správne!
EDIT 1:
PHP 5.3.8
Nette 2.0 Final
EDIT 2:
Zabudol som napísať ešte, že ak napr. tú druhú zvislú čiaru odstránim,
tak to funguje správne…
S pozdravom bojno
Editoval bojno (12. 2. 2012 17:52)
- bojno
- Člen | 8
Hmm, zaujímavé. Backtrack limit som si zvyšoval (na localhoste) a stále mi to nešlo ale teraz keď som to zvýšil na servery kde hosťujem tak fičí …
Avšak, ak znova upravím ten string
{_'Bla bla asdfa|abdsafa|abdsafa|abdsaf|bb hah hih.'}
opäť som pri Back track limit was exhausted. Osobne si myslím, že je zle spravený ten regulárny výraz…
(?P<args>.*?)
Konkrétne si myslím že tu je chyba. .* by malo byť špecifickejšie… Môj názor. Zvyšovanie back track limitov nie je tá správna cesta si myslím …
Editoval bojno (24. 2. 2012 19:55)