v2.5.2
Giriş yap

PHP explode dinamik yazıları bölme

emirhankayabas
64 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)
mubado
47 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.

abdullahx
48 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;