• 10-10-2023, 22:56:41
    #1
    Üyeliği durduruldu
    Merhabalar, bir mackolik botu geliştirmeye çalışıyorum fakat sitede 1 yayında 2 kanal adı yazıyor bende bunu filtrelemek istiyorum örnek S Sport, S Sports Plus şeklinde bitişik haldeleler ben s sport plus kelimesini tamamen kaldırmak istiyorum s sport kalmalı görselde virgülden sonraki kısım olmamalı nasıl yapabilirim?

     if (str_contains($kanaladiara, "nba") || str_contains($kanaladiara, "s sport") || str_contains($kanaladiara, "tivibu") || str_contains($kanaladiara, "trt")) {
  • 10-10-2023, 23:02:39
    #2
    php explode diye araştırabilirsin explode fonksiyonu 2 parametre alır 1. belirtilen karakter 2. toplam string.

    string değeri belirtilen karakterden bölerek dizi oluşturur sende bu şekilde kolayca virgülün sonrasını ayıra bilirsin. tabi istersen öncelikle , var mı yok mu sorgusuda strstr fonksiyonuyla yapabilirsin.
  • 10-10-2023, 23:15:42
    #3
    selcukcbk adlı üyeden alıntı: mesajı görüntüle
    Merhabalar, bir mackolik botu geliştirmeye çalışıyorum fakat sitede 1 yayında 2 kanal adı yazıyor bende bunu filtrelemek istiyorum örnek S Sport, S Sports Plus şeklinde bitişik haldeleler ben s sport plus kelimesini tamamen kaldırmak istiyorum s sport kalmalı görselde virgülden sonraki kısım olmamalı nasıl yapabilirim?

     if (str_contains($kanaladiara, "nba") || str_contains($kanaladiara, "s sport") || str_contains($kanaladiara, "tivibu") || str_contains($kanaladiara, "trt")) {
    $kanaladi = //Burası bu kodun yukarısında olmalı for döngüsüne almıştım burası kalsın.
    if (str_contains($kanaladiara, "nba") || str_contains($kanaladiara, "s sport") || str_contains($kanaladiara, "tivibu") || str_contains($kanaladiara, "trt")) {
    //Eklenen Yeni Kod
    if (str_contains($kanaladi,",") {
    $kanaladi = explode(",",$kanaladi)[0]; //0 Yazarsanız virgülden öncekini 1 yazarsanız virgülden sonrasını alır
    }
    
    }
  • 10-10-2023, 23:25:14
    #4
    Üyeliği durduruldu
    emregunery adlı üyeden alıntı: mesajı görüntüle
    $kanaladi = //Burası bu kodun yukarısında olmalı for döngüsüne almıştım burası kalsın.
    if (str_contains($kanaladiara, "nba") || str_contains($kanaladiara, "s sport") || str_contains($kanaladiara, "tivibu") || str_contains($kanaladiara, "trt")) {
    //Eklenen Yeni Kod
    if (str_contains($kanaladi,",") {
    $kanaladi = explode(",",$kanaladi)[0]; //0 Yazarsanız virgülden öncekini 1 yazarsanız virgülden sonrasını alır
    }
    
    }
    çok teşekkür ederim hocam rahatsız etmek istememiştim uğraştım çözemeyince konu açtım:= tekrar teşekkürler
  • 10-10-2023, 23:26:45
    #5
    Yanlış yere yazdım bu mesajı çok pardon birşey olursa yazmaktan çekinmeyin lütfen. Rica ederim tekrardan
  • 11-10-2023, 23:22:08
    #6
    Doğru çözüm ancak ufak bir çıkarma yapabiliriz. explode fonksiyonu eğer virgülü bulmazsa zaten bir array döneceği için [0] indexi her zaman olacaktır. Bu sebeple bir kere explode çalıştırdığınızda str_contains yapmadan doğrudan $veri[0] şeklinde değeri alabilirsiniz. Ayrıca if kontrolüne gerek kalmamış olur.

    emregunery adlı üyeden alıntı: mesajı görüntüle
    $kanaladi = //Burası bu kodun yukarısında olmalı for döngüsüne almıştım burası kalsın.
    if (str_contains($kanaladiara, "nba") || str_contains($kanaladiara, "s sport") || str_contains($kanaladiara, "tivibu") || str_contains($kanaladiara, "trt")) {
    //Eklenen Yeni Kod
    if (str_contains($kanaladi,",") {
    $kanaladi = explode(",",$kanaladi)[0]; //0 Yazarsanız virgülden öncekini 1 yazarsanız virgülden sonrasını alır
    }
    
    }
  • 11-10-2023, 23:24:20
    #7
    fatihemre adlı üyeden alıntı: mesajı görüntüle
    Doğru çözüm ancak ufak bir çıkarma yapabiliriz. explode fonksiyonu eğer virgülü bulmazsa zaten bir array döneceği için [0] indexi her zaman olacaktır. Bu sebeple bir kere explode çalıştırdığınızda str_contains yapmadan doğrudan $veri[0] şeklinde değeri alabilirsiniz. Ayrıca if kontrolüne gerek kalmamış olur.
    Evet hocamın dediği gibi kod kalabılığı azaltılır teşekkürler.