v2.5.2
Giriş yap

PHP explode dinamik yazıları bölme

emirhankayabas
426 defa görüntülendi

Herkese iyi günler. Veri tabanından bana arcane-1-sezon-1-bolum, la-casa-de-papel-kore-1-sezon-2-bolum gibi değeler geliyor. Buradaki gelen 1-bolum, 10-bolum gibi yeri +1 artırmak istiyorum. PHP explode ile denedim lakin dizi ismi değişince sıralamada kayıyor. Bunu nasıl yapabiliriz acaba?

Cevap yaz
Cevaplar (2)
abdullahx
879 gün önce

$seasonKeywords = ['sezon', 'season'];
$episodeKeywords = ['bolum', 'episode'];
$seasonup = true; // sezon numarasını artırmak istiyorsan bu değeri true/false yap
$episodeUp = true; // bölüm numarasını artırmak istiyorsan bu değeri true/false yap

$str = 'la-casa-de-papel-kore-1-sezon-2-bolum';

$explode = explode('-', $str);

foreach ($explode as $k => &$v) {
    $n = (int) $v;
    if ($n) {
        if (in_array($explode[$k + 1], $seasonKeywords) && $seasonup) {
            $v++;
        }
        if (in_array($explode[$k + 1], $episodeKeywords) && $episodeUp) {
            $v++;
        }
    }
}
$newStr = implode('-', $explode);
echo $newStr;
mubado
878 gün önce

sürekli eğer son iki tanesinde ise çıkaracağın veri şu şekilde yapabilirsin.

echo newurl('arcane-1-sezon-1-bolum');

function newurl($link){

$linkexplode = explode($link);

$linkcount = count($linkexplode);

if($linkcount > 1){
    $episode = $linkexplode($linkcount-1);
}else{
    $episode = $linkexplode($linkcount-1)+1;
}
foreach($linkexplode as $key=>$value){
        if($key == $linkcount-2){
            $data[] = $episode;
        }else{
            $data[] = $value;
        }
    }
}

return implode('-',$data);

}

diğer yol ise regex ile yapabilirsin.