Şimdi Ara

Php ile paragrafı kelimelerine bölme

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
945
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar üzerinde çalıştığım bir projede, tüm paragrafların içerisindeki kelimeleri tek tek elde edip bir diziye aktarmam lazım. Her kelimenin başına ve sonuna belli tag ekleyip veritabanına atmam lazım. Php explode ile kelimeler arası boşluktan faydalanarak kelimelerine ayırabilirim fakat ya kelimenin sonunda virgül gibi bir noktalama işareti varsa ve sonrasında boşluk yoksa, kelimeyi nasıl ayırabilirim? Ayrıca noktalama işaretlerini de korumam lazım. Bildiğiniz bir script var mı?

    < Bu ileti mobil sürüm kullanılarak atıldı >



  • Bahsettiğin olayı Perl de cesitli yollardan yapmak mümkün, PHP'deki explode gibi Perl'de split fonksiyonuna " " ayracı vererek, Text::ParseWords modulü kullanarak, Türkçe'ye özel kelimeler için Lingua modülü kullanarak ve bunlardan hiçbirini kullanmadan Regular Expression kullanarak:



    PHP'yi bıraktığım için Perl ile bir örnek:



    Php ile paragrafı kelimelerine bölme




    Regular Expression 'da parantez hem gruplama hem de "capture" yani istenen kelimeyi çekmek için kullanılıyor. RegExp içinde en dıştaki parantez, kelimeyi cekip @words dizisine eklemek için, ortadaki (?:[-']\w+) parantez ise kelimeler arasında - ve ' gibi işaretli olanları da tek kelime olarak gruplamak için. Biraz karışık oldu kabul ediyorum fakat RegExp 'le bu sayede cok kısa bir tanımla birçok işlemi yapabiliyorsun, avantajı o. PHP de RegExp'i destekliyor, yani bu RegExp'i PHP'de kullanabilirsin.

    < Bu ileti mini sürüm kullanılarak atıldı >




  • If koşullu yapısı içinde strpos fonksiyonu ile olası tüm imla karakterlerini kontrol edip explode ile ayırabilirsiniz. Veya Regex kullanışlı olabilir ayrıca.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.