Bu yazıda etiket tabanlı PHP yazı içine reklam ekleme uygulamasının yapımını ayrıntılı olarak göreceğiz. İçerikte ikinci
etiketinden önce şu reklam gözüksün, beşinci etiketinden hemen önce bu reklam gözüksün gibi koşullar ile istenildiği kadar reklam eklenebilir.
Web sitelerinde sayfa içerisinde yukarıda, aşağıda kenarlarda, köşelerde reklamlar yayınlanabildiği gibi uzun yada kısa yazı içeriklerinde de reklam yayınlanması istenebilir. Aşağıda vereceğim fonksiyon ile birden fazla reklamı belirli ölçülerde yazı içerisine yerleştirebileceğiz.
function insertads_middle_multi($content, $delimiters, $replace,$sira)
{
preg_match_all('~' . implode("|", $delimiters) . '~', $content, $matches, PREG_OFFSET_CAPTURE);
$afterSection = $sira-1;
return ((floor(count($matches[0]))-1) >= $afterSection)? substr_replace($content, $replace.$matches[0][$afterSection][0], $matches[0][$afterSection][1], strlen($matches[0][$afterSection][0])):$content;
}
Kullanımı da aşağıdaki gibidir. Böylelikle birden fazla reklamı aynı içeriğe istenilen konumlara yerleştirmiş oluyoruz.
$icerik =
'
dsadsasdadsa
dasdassaddsadsadsaasdsadasasdas asdasdasdasdsaadsasd
dasdasasddsa
dsadasdsaasdasdasdasdsasadsdaasd asdassad
dsadasasd
dsadasdsaasdasdasdasdsasadsdaasd asdassad
Corc dasdsasad
';
$reklam1 = "- [reklam alani 1] - ";
$reklam2 = "- [reklam alani 2] - ";
$reklam3 = "- [reklam alani 3] - ";
$reklam4 = "- [reklam alani 4] - ";
if ($reklam1){
$icerik = insertads_middle_multi($icerik, array(""), $reklam1, 1); /*birinci h2 etiketinden önce ekleme yapılacak*/
}
if ($reklam2){
$icerik = insertads_middle_multi($icerik, array("
"), $reklam2, 7); /*yedinci p etiketinden önce ekleme yapılacak*/
}
if ($reklam3){
$icerik = insertads_middle_multi($icerik, array("
"), $reklam3, 11); /*on birinci p etiketinden önce ekleme yapılacak*/
}
if ($reklam4){
$icerik = insertads_middle_multi($icerik, array("
"), $reklam4, 15); /*on beşinci p etiketinden önce ekleme yapılacak*/
}
İçerikte on beşinci
etiketten önce reklam eklemesi yapmak istiyoruz ancak 15 tane
etiketi yok. O zaman içerikte hiçbir düzenleme olmuyor.