Nette nefunkcne regulare v utf8

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

Zdravim,

ak pouzivjem v nette funkciu preg_replace a hladam napriklad biele znaky \s tak sa mi pokazi povodny text a rozhadze v nom kodovanie. Ak to skusam mimo nette, je vsetko ok. hladal som problem, bohuzial ho neviem naist. nejaky napad, co to moze robit?

Filip Procházka
Moderator | 4668
+
0
-

Ukaž kód a testovací vzorek dat.

japlavaren
Člen | 404
+
0
-

podrobnosti: cerstvo stiahnute nette 5.2 s namespace prefix

<?php
function startup(){
		parent::startup();

		$message = 'Výrobky pro slévárny';
		list($text) = NStrings::match($message, '~[\w]+~');

		NDebugger::dump($message);
		NDebugger::dump($text);
	}
?>

vypise

„Výrobky pro slévárny“ (23)

„V\xc3“ (2)

ak pouzijem klasicky preg_match mimo nette, je vsetko ok

Editoval japlavaren (13. 11. 2011 18:33)

Filip Procházka
Moderator | 4668
+
0
-

Nemám nejmenší tušení jak se ti to povedlo, protože Nette neupravuje řetězec, který tomu předáš. Neposíláš tam nějaké hlouposti? Určitě máš vstup v utf-8? Určitě máš web v utf-8? Protože Nette podporuje jenom utf-8.

Editoval HosipLan (13. 11. 2011 18:04)

22
Člen | 1478
+
0
-

cerstvo stiahnute nette 5.2 s namespace … kde jsi to stáhnul? :-) Nic takového neexistuje…

Editoval 22 (13. 11. 2011 18:05)

Filip Procházka
Moderator | 4668
+
0
-

Nejspíš myslel prefixovanou verzi :)

hrach
Člen | 1838
+
0
-

něco jako NStrings::match($message, '~[\w]+~u'); dělá co?

japlavaren
Člen | 404
+
0
-

je to utf8, testnite rposim, ci to robi i vam

http://www.upnito.sk/…941cc82.html

japlavaren
Člen | 404
+
0
-

hrach – funguje! to carovne u co znamena? nepoznam to a v tahaku to tiez nieje – http://www.regularnivyrazy.info/…syntaxe.html

Aurielle
Člen | 1281
+
0
-

Malé u pokud si dobře pamatuju povoluje právě UTF-8 režim. Velké U defaultně zapíná ungreedy matche.

japlavaren
Člen | 404
+
0
-

mno by bolo vhodne ho dat defaultne na match a replace do kodu

Jan Jakeš
Člen | 177
+
0
-

To už se tu kdysi řešilo. Jen jsem upozorňoval na pár (ne až zas tak zásadních zásadních) neduhů.