Latte makro prekladu vypisuje chybu, ak obsahuje | (zvislú čiaru)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
bojno
Člen | 8
+
0
-

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)

Aurielle
Člen | 1281
+
0
-

Mám pocit že tohle souviselo s jakýmsi PHP bugem a bylo to tady na fóru řešeno. Můžeš napsat informace o své verzi PHP / poslat phpinfo? Bylo by taky dobré uvést verzi Nette.

bojno
Člen | 8
+
0
-

PHP mám 5.3.8 a používam Nette 2.0 Final …
Vyvíjam na localhoste cez XAMPP.
Na fóru som hladal tieto backtrack limity, ale presne tento problém sa neriešil …

bojno
Člen | 8
+
0
-

Komentár na oživenie, stále nevyriešené…

Domnievam sa, že chyba sa nachádza v regulárnom výraze… viď pattern v prvom okienku.

Milo
Nette Core | 1283
+
0
-

Zkus si v zvýšit php.ini hodnotu pcre.backtrack_limit.

Edit: ale asi to nepomůže :)

Edit 2: tak beru zpět, pomůže :)

ini_set('pcre.backtrack_limit', 10000000);

Editoval Milo (24. 2. 2012 12:35)

bojno
Člen | 8
+
0
-

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)

hrach
Člen | 1838
+
0
-

Ha, uz to mas fixle :P

bojno
Člen | 8
+
0
-

jj super, funguje to ;) díkes …

FIXED and CLOSED… :)

Editoval bojno (24. 2. 2012 20:03)