Merhaba örnek 300kelimeli 10 paragrafı bir yazıda her 3 paragrafra bir reklam çıksın istiyorum ancak eğer içerik 100keime 1 paragraf sa veya 150kelime 2 paragrafsa bu durumda benim reklam işi zor oluyor bunu çözmek adına geçen wordpress konularında bir içerik görmüştüm fakat şimdi bulamıyorum
İstediğim içerik 150 kelime den azsa en az bir tane reklam eklesin istiyorum bunu nasıl yapabilirim
Php de içeriğe göre reklam kodu eklemek
2
●92
- 04-10-2023, 01:53:49
<?php function reklamEkle($metin) { // Metni paragraflara böl $paragraflar = preg_split('/\n(?:\s*\n)+/', $metin); // Her üç paragrafta bir reklam ekle for ($i = 2; $i < count($paragraflar); $i += 3) { // Paragrafın kelime sayısını kontrol et $kelimeSayisi = str_word_count(strip_tags($paragraflar[$i])); // Eğer kelime sayısı 150'den azsa reklam ekle if ($kelimeSayisi < 150) { $reklam = '<div class="reklam">Reklam Buraya Gelecek</div>'; $paragraflar[$i] .= $reklam; } } // Paragrafları birleştir ve metni döndür return implode("\n", $paragraflar); } // Örnek metni tanımla $ornekMetin = " Bu birinci paragraf. Burada çok güzel şeyler anlatılıyor. İkinci paragraf daha kısa. Fakat yine de önemli bir konuya değiniyor. Üçüncü paragraf daha uzun. Detaylı bir açıklama içeriyor ve reklam eklenmesi gerekiyor. Dördüncü paragraf devam ediyor. Reklam eklenmeyecek. Beşinci paragraf, reklam eklenecek. Altıncı paragraf, reklam eklenmeyecek. "; // Reklam ekleyen fonksiyonu çağır $sonuc = reklamEkle($ornekMetin); // Sonucu ekrana yazdır echo $sonuc; - 04-10-2023, 12:18:54Editör kullandığınız için her paragraf düzenli "p" etiketi olacağından dolayı, adet üzerinden yola çıkabilirsiniz. Koşullar hayal gücünüze kalmış.
<?php $content = '<p>Paragraf 1</p><p>Paragraf 2</p><p>Paragraf 3</p><p>Paragraf 4</p>'; $dom = new DOMDocument(); $dom->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $pTags = $dom->getElementsByTagName('p'); foreach ($pTags as $index => $pTag) { if ($index && (sizeof($pTags) <= 3 || $index && $index % 3 === 0)) { $newDiv = $dom->createElement('div', 'Reklam ' . rand(1, 10)); $newDiv->setAttribute('style', 'font-weight:bold'); $pTag->parentNode->insertBefore($newDiv, $pTag); } } $newContent = $dom->saveHTML(); echo $newContent;