İyi günler arkadaşlar, bütün gece aşağıdaki kod ile uğraştım ama bir türlü halledemedim bir de siz bakarsanız sevinirim... Kodun esas olarak 3 sonuç döndürmesi lazım ama "tanı" kelimesi bir türlü "TANIM" ile eşleşmiyor bunun sebebinin ne olduğunu bulamadım, strtolower yaptığımda "TANIM" kelimesinin "tanim" olarak döndüğünü görüyorum buradan yola çıkarak preg_match_all'un eşleşmediği düşüncesindeyim, sizce ne yapabilirim bana bir yol gösterirseniz çok makbule geçecek...
preg_match_all('/tanı/isuU',"TANIM Tanım tanım",$sonuclar)
preg_match_all insensitive türkçe eşleşmesi
3
●384
- 30-08-2014, 15:31:06Kimlik doğrulama veya yönetimden onay bekliyor.@slayer1ss; PHP "I" karakterini "ı" karakterinin büyük hali olarak tanımlayamadığı için böyle bir sorun oluşuyor. Şu şekilde bir çözüm üretebiliriz ama ne derece sağlıklı olacağı tartışılır.

<?php ini_set('html_errors', false); header('Content-Type: text/plain; charset=UTF-8', true, 200); $pattern = '/tan[ı|I]/isuU'; $subject = 'TANIM Tanım tanım'; $matches = preg_match_all($pattern, $subject, $matches) ? $matches : null; print_r($matches); - 30-08-2014, 15:45:21saintx adlı üyeden alıntı: mesajı görüntüle
Bu işe yarayabilecek bir yönteme benziyor tek sıkıntı 4-5 paragraflık bir metinde bunları değiştirmenin performans açısından ne kadar yarar/zarar verebileceği. Bir de php de "I" harfinin dışında tanımlayamadığı başka harf var mı? "ÖÇŞĞÜ" vs bunlarda da sıkıntı var mı? - 30-08-2014, 16:10:34@slayer1ss; evet o harflerde de sıkıntı oluşuyor. Bunun daha farklı bir çözümü olmalı, ben araştırmalarıma devam ediyorum. Şuan için bir üstte bulunan mesajımda belirttiğim çözüm işe yarar nitelikte fakat sağlıklı değil, "production" ortamında kullanmanızı tavsiye etmem.
