Jump to content
php.lv forumi

preg_replace gļuks vai arī es kaut ko nejēdzu


ELs

Recommended Posts

Uzdevums:

Dots tekts. Tekstā vajag atrast kādu vārdu un iekrāsot viņu sarkanā krāsā. Meklēšana case insensitive un pēc meklētais vārds nedrīkst tik bojāts (pārtaisīts no lielajiem burtiem uz mazajiem, no mazajiem uz lielajiem utt.)

 

$text = 'Šlesers un Kalvītis iet ciemos pie Šķēles dzert tēju';
$word = 'Šķēle';
$expr="/\b$word(\B|\b)/i";
$text=preg_replace($expr, "<font color=red>\\0</font>",$text);

 

Vajadzētu iegūt lai Šķēle iekrāsojas, bet tā nenotiek. Viss ir ok, ja meklētais vārds nesākas ar Š, Ķ, Č utt. Esmu izmantojis arī citas repleisošanas funkcijas, bet neviena man nav nostrādājusi uz lielajiem burtiem ar mīkstinājuma un garuma zīmēm. Mazie burti ar attiecīgajām zīmēm nostrādā...

 

Idejas vai norādes uz kļūdu?

Link to comment
Share on other sites

Sorry, ELs galīgi tavu meilu biju piemirsis.

 

Tagad pamēģināju tavu iekopēto te koda gabalu. Ieseivoju to kā UTF-8 un viss strādāja - aizvietojās kā vajag.

 

P.S. (\B|\b) IMO nav galīgi nekādas jēgas, tad tāpat kā būtu (1|[^1]). Tb izteiksme iekavās matchos jebko.

Link to comment
Share on other sites

2 [Ya] - par roku līkumu lūdzu šoreiz nerunāsim...

 

 

OK - nu ja jums visiem strādā būs jāskatās kur man sviests bija... it kā arī viss bija kā UTF-8 glabāts bet tik un tā nestrādāja... vēlāk būs papildinfo... varbūt kaut ko vienkārši nepamanīju

Link to comment
Share on other sites

  • 4 weeks later...

Triks tāds, ka viss strādāja uz piemēram WIN NT, bet nestrādāja uz Linux. Ir atrasts risinājums.

$text = 'Šlesers un Kalvītis iet ciemos pie Šķēles dzert tēju';
$word = 'Šķēle';
$expr="/\b$word(\B|\b)/i";
$text=preg_replace($expr, "<font color=red>\\0</font>",$text);

Šāds variants strādāja uz NT. Bet

$text = 'Šlesers un Kalvītis iet ciemos pie Šķēles dzert tēju';
$word = 'Šķēle';
$expr="/(\B|\b)$word(\B|\b)/iu";
$text=preg_replace($expr, "<font color=red>\\0</font>",$text);

strādā uz abiem.

Lūk kur lielais noslēpums. Ceru, ka kādam palīdzēs noteiktās situācijās.

Link to comment
Share on other sites

×
×
  • Create New...