Sorgu ile gelen dizi görünümlü metni diziye çeviremedim bununla birlikte kodu aşağıdaki şekle getirip çözdüm.
/* Doğumgünü Listesi */
$DogumGunuListesi = db'den gelen sonuç;
$veri = str_replace(" ","",$DogumGunuListesi);
$veri = str_replace("'","",$veri);
$parcala = explode(",", $veri);
foreach ($parcala as $values) {
if(trim($values)!="") {
$tarih = date(d).".".date(m);
$konum = strpos($values, $tarih);
if ($konum === false) {
} else {
$parcala2[] = explode("=>", trim($values));
}
}
}
foreach ($parcala2 as $ekranbas) {
$myBirthdayList .= "<li>".$ekranbas[0]."</li>";
}
if($myBirthdayList=="") {
$myBirthdayList = "<li><b>[%LNG|dogumgunuyok%]</b></li>";
}
$myBirthdayList = "<ul class='myBirthdayList'>".$myBirthdayList."</ul>";
/* Doğumgünü Listesi */
Emeği geçen hepinize teşekkürler.
Tek bir sorun kaldı. $DogumGunuListesi aslında dizi değil.
Sorumda da belirttiğim gibi bilgileri mediumtext olarak veritabanında tutuyorum.
Sorumu yazarken bahsettim bununla birlikte çok yüzeysel kalmış olabilir.
Bu ekran alıntısındaki gibi array görünümlü bir metin aslında. Bunu diziye çevirmeliyim.
Sanırım parçalayıp tekrar dizi olarak birleştirmem gerekiyor.
Bu codepen iş görecektir. Silinir milinir kodları buraya da ekliyorum.
<div class="test">
<h3>Hello World</h3>
<p>The class of <code>blue</code> is added when I am wider than 600px and is removed when I am 600px or less in width.</p>
</div>
body {
font: normal 16px/1.5em sans-serif;
color: #111;
}
code {
background: #ccc;
}
.test {
background: #fffccc;
border: solid 3px rgba(0,0,0,0.1);
margin: 20px;
padding: 40px 20px;
}
.test.blue {
background: dodgerBlue;
}
.test.green {
background: green;
}
jQuery(document).ready(function($) {
var alterClass = function() {
var ww = document.body.clientWidth;
if (ww < 600) {
$('.test').removeClass('blue');
} else if (ww >= 601) {
$('.test').addClass('blue');
};
};
$(window).resize(function(){
alterClass();
});
//Fire it when the page first loads:
alterClass();
});
Class dışında $DogumGunuListesi değişkenine eşitledim.
Sonucu class içinde 6'ıncı satırda global $DogumGunuListesi; ile çağırdım.
7'inci satırda echo "$DogumGunuListesi"; ile bastım. Ekran Alıntısı Ekran alıntısında Doğum günü yok yazmasının sebebi statik tanımların commentli olmasıdır.
Bununla birlikte asıl 11'inci satırdaki $this->birthDays = [] arasında olması gerekiyor.
Burada print_r() ile basınca 'Ali' => '21-09-1997', 'Veli' => '11-09-1993', 'Zeki' => '15-09-1991'
çıktısını veriyor ve duruyor.
Ekran Alıntısı
Ekran alıntısı aldığım araç, görsel uzantısı olan bir bağlantı vermediği için böyle bağlantı şeklinde ekliyorum.
class Birthday {
private $birthDays;
public $today;
public $notifications;
public function __construct() {
global $DogumGunuListesi;
echo "$DogumGunuListesi";
$this->today = new DateTime('today');
// for demo purpose we set harry's birthday for every day
$this->birthDays = [
//print_r ($DogumGunuListesi)
//'Ali' => '21-09-1997',
//'Veli' => '11-09-1993',
//'Zeki' => '15-09-1991'
//'Harry' => $this->today->format('d-m').'-1991'
];
$this->notifications = [];
}