#php #explode #preg-split
#php #разнесите #предварительный раздел
Вопрос:
Я работаю на старом веб-сайте somebodies, он получил этот фрагмент php-кода, который помещает рекламный div внутри содержимого после 4-го абзаца. Все работает нормально. Идея такова: explode
редактирование </p>
тегов, подсчет их в цикле, добавление нового div после 4-й итерации, объединение всего обратно.
Проблема с этой функцией в том, что она подсчитывает ВСЕ абзацы, а мне нужен только абзац без атрибутов (классы, идентификаторы и т.д.). Только обычные теги clean <p>
.
Вот код, который я использую сейчас:
$paragraphAfter = 4; //Enter number of paragraphs to display ad after.
$content = explode("</p>", $content);
$new_content = '';
for ($i = 0; $i < count($content); $i ) {
if ($i == $paragraphAfter) {
$new_content.= '<div id="adsuser">';
$new_content.= '<h3 style="font-weight:bold; margin:0px">'.get_the_title().'</h3>';
$new_content.= '<p style="margin:0px; background-color:rgba(255,255,0,0.3); line-height:1.2em">'.get_the_excerpt().'</p>';
$new_content.= '</div><div id="sealads"></div>';
}
$new_content.= $content[$i] . "</p>";
}
wp_reset_postdata();
$new_content .= '<p style="font-size:145%; text-align:center"><a href="http://www.bayadaim.org.il/פורום-בידיים/" style="">נשארת עם המון שאלות? רוצה לפתוח דיון בנושא?<br/> פורום "בידיים" מחכה לך!</a></p>';
return $new_content;
Я пробовал несколько вещей, в том числе preg_split
, но, похоже, я использую это неправильно, потому что я всегда получаю беспорядочный контент без <p>
тегов или со слишком большим количеством.
Большое спасибо, Итамар
Комментарии:
1. используйте DOMDocument, это большая часть для изучения, но это правильный путь, а регулярные выражения — нет.
2. не могли бы вы объяснить подробнее, пожалуйста? Что такое DOMDocument и как это может помочь мне с моей проблемой? Спасибо/