Veritabanından okuduğum PHP dizeleri var. Dizeler URL'lerdir ve ilk bakışta iyi görünüyorlar, ama sonunda garip bir karakter var gibi görünüyor. Tarayıcının adres çubuğunda, URL'yi kesen URL'ye '% E2% 80% 8E' dizesi eklenir.PHP'de bir dizgeden görünmeyen karakterleri belirleme ve kaldırma (% E2% 80% 8E)
this post on stripping the left-to-right-mark from a string in PHP'u buldum ve bu benim sorunumla ilgili görünüyor, ancak çözüm benim için çalışmıyor çünkü karakterlerim başka bir şey gibi görünüyor.
Peki, hangi karaktere sahip olduğumu nasıl belirleyebilirim böylece dizelerden kaldırabilirim?
(Ben burada örnek olarak URL'den birini göndermek, ama yığın taşması formu en kısa sürede buraya yapıştırın olarak sonunda karakterini ayıklar.)
Ben sadece belirli izin verebilir biliyoruz dize içinde chars ve diğer tüm atın. Ama hala hangi karakterin olduğunu ve veritabanına nasıl girildiğini bilmek isterim.
DÜZENLEME: Soru yanıtladı ve kabul edilen yanıt verilen kod benim için çalışıyor olmuştur:
$str = preg_replace('/\p{C}+/u', "", $str);
Onları dışlamak için normal ifadeleri kullanırsınız. Bkz. Http://www.roscripts.com/PHP_regular_expressions_examples-136.html –
"SİZ" kullanıcısından gelen çözümü denediniz mi? –
@CasimiretHippolyte Teşekkürler. YOU kullanıcısı tarafından verilen preg_replace sürümü benim için çalışıyor, sadece denedim. Ama hangi char? Ve kabul edilen çözüm, sağdan sola işaretliyse neden işe yaramadı? – spirit