PHP explode dinamik yazıları bölme
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?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
$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;
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.