Yanıtlar için teşekkürler, çocuklar. Ne yazık ki, sunulan bu şu sorun vardı:
bariz nedenlerle yanlış:
ereg_replace("[^A-Za-z0-9]", "", $string);
Bu:
s/[\u00FF-\uFFFF]//
Ben aralık işlemek için regex için sadece çok büyük olduğu için gebelik dönüştürüldüğünde de regex onaysız ereg formunu kullanan da işe yaramadı. Ayrıca, çöp sızmasına izin vereceğini aralığında delik vardır.
Bu öneri:
Bu bir kodlama sorun; O sahte karakterleri temizlemek için deneyin ama siz şifreli bunları alıyorsanız anlamak gerekir.
geçerli iken ben aldığınız verilerin nasıl kodlandığını üzerinde herhangi bir kontrol yok, çünkü hiçbir iyidir. Bu harici bir kaynaktan geliyor. Bazen çöp orada var ve bazen yoktur.
Yani, ben ile geldi çözüm nispeten kirli, ama daha sağlam bir şey yokluğunda Ben sadece tüm standart harf, rakam ve sembolleri kabul ve dinlenme atarak ediyorum.
Bu şimdi çalışmıyor gibi görünüyor. Aşağıdaki gibi bir çözüm:
$fixT = str_replace("£", "£", $string);
$fixT = str_replace("€", "€", $fixT);
$fixT = preg_replace("/[^a-zA-Z0-9\s\.\/:!\[\]\*\+\-\|\<\>@#\$%\^&\(\)_=\';,'\?\\\{\}`~\"]/", "", $fixT);
Herkes daha iyi bir fikir varsa ben hala onları duymak için istekli değilim. Şerefe.