Bu kodu vardır:
$value = preg_replace("/[^\w]/", '', $value);
burada $value
utf-8 olduğunu. Bu dönüşüm sonra baytlı karakterlerden ilk bayt şeritli. \ W kapak UTF-8 karakter tamamen nasıl yapılır?
Üzgünüm, ben PHP çok iyi değilim
yerine bu işlevi denemek ... http://php.net/manual/en/function.mb-ereg-replace.php
Yapabildin try with the /u modifier:
Bu değiştirici Perl ile uyumlu PCRE'nin işlevselliği açar. Desen UTF-8 olarak kabul edilir. Bu değiştirici win32'de PHP Unix 4.1.0 veya daha gelen ve PHP 4.2.3 edinilebilir. Desenin UTF-8 geçerliliği PHP 4.3.5 sürümünden beri kontrol edilir.
Bunu yapmayacağım, deneyin
yerine.
Çok PHP . It states that the regex is encoded in UTF8, but I found that it treats the input UTF8 olarak, içinde pcre desenleri bu pis u
değiştirici vardır.
Cevap - "u" PCRE'nin Çokbaytlı unicode modunu açmak için, regex için append:
$ Değer = preg_replace ("/ [^ \ w] / u",'', $ değer);
SONUÇ - unicode modunda, PCRE şey çokbaytlı ve o zaman orada değilse, will sorunlar tarihleri toplantı olacak bekliyor. Bu nedenle, UTF-8 için bir şey (dönüştürmek ve herhangi dönüştürülemeyen önemsiz damla), biz ilk kullanın:
$ Değer = iconv ('ISO-8859-1', 'UTF-8 / / GÖRMEZDEN / / DAMGAÇEVİRİSİ', $ i);
girişini temizlemek ve hazırlık.
Her şey (bazı karanlık karakterler yanlış görünse bile) ISO-8859-1 içine kodlanmış olabilir ve çoğu web tarayıcıları 8859 yılında yerel olarak çalışır beri (UTF-8 kullanmak için söylendi sürece), biz genel olarak bu fonksiyonu buldum çünkü, ', bir şey almak herhangi önemsiz damla, ve UTF-8 dönüştürmek' için güvenli, etkili bir yöntem.
mb_ereg_ * 5.3.0 itibariyle önerilmemektedir - böylece bu fonksiyonlarını kullanarak gitmek için doğru bir yol değildir.