Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
TomyLeeBoy #15699 üzenetére
Két probléma van:
1. sprintf()-et használsz, ami UTF-8-as karakterekre nem működik megfelelően
2. a regexpben az "u" modifiert kellene használnod:
http://php.net/manual/en/reference.pcre.pattern.modifiers.php
"u (PCRE_UTF8)
This modifier turns on additional functionality of PCRE that is incompatible with Perl. Pattern strings are treated as UTF-8. This modifier is available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32. UTF-8 validity of the pattern is checked since PHP 4.3.5."Röviden a megoldás: a külön $pattern változó helyett a cikluson belül így nézzen ki a $regex változód, hogy egyből be is helyettesíted az értéket, így kikerülöd az sprintf() használatát:
$regex = '/(?!<.*?)('.$needle_s.')(?![^<>]*?>)/iu';
Így már működni fog. (Ugyanazt csinálja, mint a korábbi kódod, csak össze van fűzve a string a %s behelyettesítése helyett, és elláttam az u modifierrel (lásd a case insensitivity-t jelölő i modifier után).)
Még egy fontos dolog: a font tageket ma már nem használjuk (nagyon régóta deprecated), szóval azt cseréld le span-re, és ugyanúgy működni fog.
Új hozzászólás Aktív témák
- AKCIÓ! GAMER PC: Új RYZEN 5 4500-5600X +RTX 3060/3070/3080 +Új 16-64GB DDR4! GAR/SZÁMLA! 50 FÉLE HÁZ
- UHH! HP EliteBook 840 G8 Fémházas Laptop 14" -45% i5-1145G7 4Mag 32/512 FHD IPS Intel Iris Xe Magyar
- Xiaomi Redmi Note 13 Pro 5G - 8/256 - Media Markt garancia
- Xiaomi Redmi 9at - 2/32 - szürke
- Xiaomi Mi8 - 6/128 - fekete
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged