Тег TITLE

Match text between HTML class tags

Now, how can I preg_match_all this, to match only the my_content text? I was trying answers from this question: Preg match text in php between html tags but modifying the regex result in selecting the whole code including HTML tags.

@PhpMyCoder Yes, I do. But I havent found any example on how to process my problem using DOMDocument .

@Rusco Have you ever worked with Javascript? The function calls are essentially the same. And docs are here.

2 Answers 2

The following regex will work for matching between the tags.

With single quotes and double quotes.

If you don’t care if it is a div, ul or etc, remove the from the regex pattern.

I wrote that I need to match content of a specified class tag. The example you gave will match any tag element, and not only with class ips .

@sixeightzero Seems like you have some unescaped quotes in your regex. Make sure to always escape quotes and backslashes in regex.

Thanks.. i use regextester.com to test my regex’s on the fly. always forgetting to escape the quotes. 🙁

Its not that, as I’ve escaped the quotes, also updated my script with your edit and still gives the same message.

Here, use this RegEx to allow variations:

  • spaces before or after equals sign
  • multiple class names in one class attribute
  • multiple attributes after the class attribute

This question is in a collective: a subcommunity defined by tags with relevant content and experts.

Linked

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.27.43548

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

Извлечение данных с помощью регулярных выражений PHP

Получение данных с помощью функций preg_match() и preg_match_all() .

Текст из скобок

Извлечение содержимого из круглых, квадратных и фигурных скобок:

$text = ' Телеобъектив: диафрагма [ƒ/2.8] Широкоугольный объектив: (диафрагма ƒ/1.8) По беспроводной сети: Поддержка диапазона: '; /* [. ] */ preg_match_all("/\[(.+?)\]/", $text, $matches); print_r($matches[1]); /* (. ) */ preg_match_all("/\((.+?)\)/", $text, $matches); print_r($matches[1]); /* */ preg_match_all("/\<(.+?)\>/", $text, $matches); print_r($matches[1]); /* */ preg_match_all("/\<(.+?)\>/", $text, $matches); print_r($matches[1]);

Результат:

Array ( [0] => ƒ/2.8 ) Array ( [0] => диафрагма ƒ/1.8 ) Array ( [0] => до 13 часов ) Array ( [0] => Dolby Vision и HDR10 )

Текст из HTML тегов

$text = '  

Тег H1

Текст 1

Текст 2

'; /* */ preg_match('/<title[^>]*?>(.*?)/si', $text, $matches); echo $matches[1]; /* <h2>*/ preg_match('/<h1[^>]*?>(.*?)/si', $text, $matches); echo $matches[1]; /* Извлекает текст из всех <p>*/ preg_match_all('/<p[^>]*?>(.*?)/si', $text, $matches); print_r($matches[1]);</code></pre> <h4 id="rezultat-2">Результат:</h4> <pre><code >Тег TITLE Тег H1 Array ( [0] => Текст 1 [1] => Текст 2 )</code></pre> <h2 id="url-iz-teksta"> URL из текста </h2> <pre><code >$text = 'Text http://ya.ru text http://google.ru text.'; preg_match_all('/(http:\/\/|https:\/\/)?(www)?([\da-z\.-]+)\.([a-z\.])([\/\w\.-\?\%\&]*)*\/?/i', $text, $matches); print_r($matches[0]);</code></pre> <h4 id="rezultat-3">Результат:</h4> <pre><code >Array ( [0] => http://ya.ru [1] => http://google.ru )</code></pre> <h2 id="href-iz-ssylok"> href из ссылок </h2> <pre><code >$text = ' Яндекс Google Mail.ru '; preg_match_all('//i', $text, $matches); print_r($matches[1]);</code></pre> <h4 id="rezultat-4">Результат:</h4> <pre><code >Array ( [0] => http://ya.ru [1] => http://google.ru [2] => http://mail.ru )</code></pre> <h2 id="ankory-ssylok"> Анкоры ссылок </h2> <pre><code >$text = ' Яндекс Google Mail.ru '; preg_match_all('/(.*?)/i', $text, $matches); print_r($matches[1]);</code></pre> <h4 id="rezultat-5">Результат:</h4> <pre><code >Array ( [0] => Яндекс [1] => Google [2] => Mail.ru )</code></pre> <h2 id="src-iz-tegov-img"> Src из тегов img </h2> <pre><code >$text = 'text text'; preg_match_all('//is', $text, $matches); print_r($matches[1]);</code></pre> <h4 id="rezultat-6">Результат:</h4> <h2 id="e-mail-adresa-iz-teksta"> E-mail адреса из текста </h2> <pre><code >$text = 'text admin@mail.ru text text text admin@ya.ru'; preg_match_all('/([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]/i', $text, $matches); print_r($matches[0]);</code></pre> <h4 id="rezultat-7">Результат:</h4> <pre><code >Array ( [0] => admin@mail.ru [1] => admin@ya.ru )</code></pre> <h2 id="tsveta"> Цвета </h2> <h3 id="hex-hexa">HEX/HEXA</h3> <pre><code >$css = ' body < color: #000; background: #4545; >header < color: #111111; background: #00000080; >'; preg_match_all('/#(?:[0-9a-f])/i', $css, $matches); print_r($matches[0]);</code></pre> <h4 id="rezultat-8">Результат:</h4> <pre><code >Array ( [0] => #000 [1] => #4545 [2] => #111111 [3] => #00000080 )</code></pre> <h3 id="rgb-rgba">RGB/RGBA</h3> <pre><code >$css = ' body < color: rgb(0,0,0); background: rgba(17,85,68,0.33); >header < color: rgb(17,17,17); background: rgba(0,0,0,0.5); >'; preg_match_all('/((rgba)\((\d,\s?)(1|0?\.?\d+)\)|(rgb)\(\d(,\s?\d)\))/i', $css, $matches); print_r($matches[0]);</code></pre> <pre><code >Array ( [0] => rgb(0,0,0) [1] => rgba(17,85,68,0.33) [2] => rgb(17,17,17) [3] => rgba(0,0,0,0.5) )</code></pre> <p><a href="https://snipp.ru/php/preg-match">Источник</a></p> <h2 id="preg_match">preg_match</h2> <p>Ищет в заданном тексте subject совпадения с шаблоном pattern .</p> <h3 id="spisok-parametrov">Список параметров</h3> <p>В случае, если указан дополнительный параметр matches , он будет заполнен результатами поиска. Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[1] — часть строки, соответствующую первой подмаске, и так далее.</p> <p>flags может принимать значение следующего флага: <strong>PREG_OFFSET_CAPTURE</strong> В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемого массива matches в массив, каждый элемент которого содержит массив, содержащий в индексе с номером <em>0</em> найденную подстроку, а смещение этой подстроки в параметре subject — в индексе <em>1</em>.</p> <p>Обычно поиск осуществляется слева направо, с начала строки. Можно использовать дополнительный параметр offset для указания альтернативной начальной позиции для поиска (в байтах).</p> <blockquote> <p><strong>Замечание</strong>: </p> <p>Использование параметра offset не эквивалентно замене сопоставляемой строки выражением <em>substr($subject, $offset)</em> при вызове функции <strong>preg_match()</strong> , поскольку шаблон pattern может содержать такие условия как <em>^</em>, <em>$</em> или <em>(?<=x)</em>. Сравните:</p></blockquote> <p>$subject = «abcdef» ; <br/>$pattern = ‘/^def/’ ; <br/>preg_match ( $pattern , $subject , $matches , PREG_OFFSET_CAPTURE , 3 ); <br/>print_r ( $matches ); <br/>?></?php</p> <p>Результат выполнения данного примера:</p> <p>В то время как этот пример</p> <p>$subject = «abcdef» ; <br/>$pattern = ‘/^def/’ ; <br/>preg_match ( $pattern , substr ( $subject , 3 ), $matches , PREG_OFFSET_CAPTURE ); <br/>print_r ( $matches ); <br/>?></?php</p> <pre>Array ( [0] => Array ( [0] => def [1] => 0 ) )</pre> <h3 id="vozvraschaemye-znacheniya">Возвращаемые значения</h3> <p><strong>preg_match()</strong> возвращает 1, если параметр pattern соответствует переданному параметру subject , 0 если нет, или <strong>FALSE</strong> в случае ошибки.</p> <p>Эта функция может возвращать как boolean <strong>FALSE</strong> , так и не-boolean значение, которое приводится к <strong>FALSE</strong> . За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.</p> <h3 id="spisok-izmeneniy">Список изменений</h3> <table > <tr> <th>Версия</th> <th>Описание</th> </tr> </th> <tbody > <tr> <td>5.3.6</td> <td>Возвращает <strong>FALSE</strong> если offset больше, чем длина subject .</td> </tr> <tr> <td>5.2.2</td> <td>Именованные подмаски теперь позволяют синтаксис <em>(?)</em> и <em>(?’name’)</em>, также как и <em>(?P)</em>. Предыдущие версии позволяли только <em>(?P)</em>.</td> </tr> </tbody> </table> <h3 id="primery">Примеры</h3> <p><strong>Пример #1 Поиск подстроки «php» в тексте</strong></p> <p>// Символ «i» после закрывающего ограничителя шаблона означает<br/>// регистронезависимый поиск. <br/>if ( preg_match ( «/php/i» , «PHP is the web scripting language of choice.» )) echo «Вхождение найдено.» ;<br/>> else echo «Вхождение не найдено.» ;<br/>> <br/>?></?php</p> <p><strong>Пример #2 Поиск слова «web» в тексте</strong></p> <p>/* Специальная последовательность \b в шаблоне означает границу слова, <br/>* следовательно, только изолированное вхождение слова ‘web’ будет <br/>соответствовать маске, в отличие от «webbing» или «cobweb» */ <br/>if ( preg_match ( «/\bweb\b/i» , «PHP is the web scripting language of choice.» )) echo «Вхождение найдено.» ;<br/>> else echo «Вхождение не найдено.» ;<br/>></p> <p></?php</p> <p>if ( preg_match ( «/\bweb\b/i» , «PHP is the website scripting language of choice.» )) echo «Вхождение найдено.» ;<br/>> else echo «Вхождение не найдено.» ;<br/>> <br/>?></p> <p><strong>Пример #3 Извлечение доменного имени из URL</strong></p> <p>// Извлекаем имя хоста из URL <br/>preg_match ( ‘@^(?:http://)?([^/]+)@i’ , <br/>«http://www.php.net/index.html» , $matches ); <br/>$host = $matches [ 1 ];</p> <p></?php</p> <p>// извлекаем две последние части имени хоста <br/>preg_match ( ‘/[^.]+\.[^.]+$/’ , $host , $matches );<br/>echo «доменное имя: < $matches [ 0 ]>\n» ; <br/>?></p> <p>Результат выполнения данного примера:</p> <p><strong>Пример #4 Использование именованных подмасок</strong></p> <p>/* Это также работает в PHP 5.2.2 (PCRE 7.0) и более поздних версиях, <br/>* однако, вышеуказанная форма рекомендуется для обратной совместимости */<br/>// preg_match(‘/(?\w+): (?\d+)/’, $str, $matches);</p> <p>Результат выполнения данного примера:</p> <pre>Array ( [0] => foobar: 2008 [name] => foobar [1] => foobar [digit] => 2008 [2] => 2008 )</pre> <h3 id="primechaniya">Примечания</h3> <p>Не используйте функцию <strong>preg_match()</strong> , если необходимо проверить наличие подстроки в заданной строке. Используйте для этого strpos() либо strstr() , поскольку они выполнят эту задачу гораздо быстрее.</p> <h3 id="smotrite-takzhe">Смотрите также</h3> <ul> <li>«Регулярные выражения PCRE»</li> <li>preg_quote() — Экранирует символы в регулярных выражениях</li> <li>preg_match_all() — Выполняет глобальный поиск шаблона в строке</li> <li>preg_replace() — Выполняет поиск и замену по регулярному выражению</li> <li>preg_split() — Разбивает строку по регулярному выражению</li> <li>preg_last_error() — Возвращает код ошибки выполнения последнего регулярного выражения PCRE</li> </ul> <p><a href="https://php.ru/manual/function.preg-match.html">Источник</a></p> <div class="fpm_end"></div><div style="clear:both; margin-top:0em; margin-bottom:1em;"><a href="https://business-programming.ru/ubiraem-otdachu-v-css/" target="_blank" rel="dofollow" class="u2a4bce67530c05d6645265187080c3c7"><!-- INLINE RELATED POSTS 1/3 //--><style> .u2a4bce67530c05d6645265187080c3c7 { padding:0px; margin: 0; padding-top:1em!important; padding-bottom:1em!important; width:100%; display: block; font-weight:bold; background-color:#eaeaea; border:0!important; border-left:4px solid #34495E!important; text-decoration:none; } .u2a4bce67530c05d6645265187080c3c7:active, .u2a4bce67530c05d6645265187080c3c7:hover { opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; text-decoration:none; } .u2a4bce67530c05d6645265187080c3c7 { transition: background-color 250ms; webkit-transition: background-color 250ms; opacity: 1; transition: opacity 250ms; webkit-transition: opacity 250ms; } .u2a4bce67530c05d6645265187080c3c7 .ctaText { font-weight:bold; color:#464646; text-decoration:none; font-size: 16px; } .u2a4bce67530c05d6645265187080c3c7 .postTitle { color:#000000; text-decoration: underline!important; font-size: 16px; } .u2a4bce67530c05d6645265187080c3c7:hover .postTitle { text-decoration: underline!important; } </style><div style="padding-left:1em; padding-right:1em;"><span class="ctaText">Читайте также:</span>  <span class="postTitle">Убираем отдачу в css</span></div></a></div> </div><!-- .entry-content --> </article> <div class="rating-box"> <div class="rating-box__header">Оцените статью</div> <div class="wp-star-rating js-star-rating star-rating--score-0" data-post-id="185892" data-rating-count="0" data-rating-sum="0" data-rating-value="0"><span class="star-rating-item js-star-rating-item" data-score="1"><svg aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="i-ico"><path fill="currentColor" d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z" class="ico-star"></path></svg></span><span class="star-rating-item js-star-rating-item" data-score="2"><svg aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="i-ico"><path fill="currentColor" d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z" class="ico-star"></path></svg></span><span class="star-rating-item js-star-rating-item" data-score="3"><svg aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="i-ico"><path fill="currentColor" d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z" class="ico-star"></path></svg></span><span class="star-rating-item js-star-rating-item" data-score="4"><svg aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="i-ico"><path fill="currentColor" d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z" class="ico-star"></path></svg></span><span class="star-rating-item js-star-rating-item" data-score="5"><svg aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="i-ico"><path fill="currentColor" d="M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z" class="ico-star"></path></svg></span></div> </div> <div class="entry-social"> <div class="social-buttons"><span class="social-button social-button--vkontakte" data-social="vkontakte" data-image=""></span><span class="social-button social-button--facebook" data-social="facebook"></span><span class="social-button social-button--telegram" data-social="telegram"></span><span class="social-button social-button--odnoklassniki" data-social="odnoklassniki"></span><span class="social-button social-button--twitter" data-social="twitter"></span><span class="social-button social-button--sms" data-social="sms"></span><span class="social-button social-button--whatsapp" data-social="whatsapp"></span></div> </div> <meta itemprop="author" content="admin"> <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://business-programming.ru/teg-title-33/" content="Тег TITLE"> <meta itemprop="dateModified" content="2023-08-27"> <meta itemprop="datePublished" content="2023-08-29T19:28:25+03:00"> <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization" style="display: none;"><meta itemprop="name" content="Программирование"><meta itemprop="telephone" content="Программирование"><meta itemprop="address" content="https://business-programming.ru"></div> </main><!-- #main --> </div><!-- #primary --> <aside id="secondary" class="widget-area" itemscope itemtype="http://schema.org/WPSideBar"> <div class="sticky-sidebar js-sticky-sidebar"> <div id="block-2" class="widget widget_block"><div class="flatPM_sidebar" data-top="70"> <div id="Q_sidebar"></div> </div></div> </div> </aside><!-- #secondary --> <div id="related-posts" class="related-posts fixed"><div class="related-posts__header">Вам также может понравиться</div><div class="post-cards post-cards--vertical"> <div class="post-card post-card--related post-card--thumbnail-no"> <div class="post-card__title"><a href="https://business-programming.ru/yaschiki-s-usami-python/">Ящики с усами python</a></div><div class="post-card__description">pandas.plotting.boxplot# Make a box-and-whisker plot</div> </div> <div class="post-card post-card--related post-card--thumbnail-no"> <div class="post-card__title"><a href="https://business-programming.ru/primer-ispolzovaniya-svoystva-css-table-layout-74/">Пример использования свойства CSS table-layout.</a></div><div class="post-card__description">table-layout¶ Свойство table-layout определяет, как</div> </div> <div class="post-card post-card--related post-card--thumbnail-no"> <div class="post-card__title"><a href="https://business-programming.ru/primer-ispolzovaniya-svoystva-css-table-layout-73/">Пример использования свойства CSS table-layout.</a></div><div class="post-card__description">HTML Размеры таблицы HTML таблицы могут иметь разные</div> </div> <div class="post-card post-card--related post-card--thumbnail-no"> <div class="post-card__title"><a href="https://business-programming.ru/primer-ispolzovaniya-svoystva-css-table-layout-72/">Пример использования свойства CSS table-layout.</a></div><div class="post-card__description">table-layout¶ Свойство table-layout определяет, как</div> </div> </div></div> </div><!--.site-content-inner--> </div><!--.site-content--> <div class="site-footer-container "> <div class="footer-navigation fixed" itemscope itemtype="http://schema.org/SiteNavigationElement"> <div class="main-navigation-inner full"> <div class="menu-tehnicheskoe-menyu-container"><ul id="footer_menu" class="menu"><li id="menu-item-12637" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12637"><a href="https://business-programming.ru/pravoobladatelyam/">Правообладателям</a></li> <li id="menu-item-12638" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12638"><a href="https://business-programming.ru/politika-konfidentsialnosti/">Политика конфиденциальности</a></li> <li id="menu-item-12639" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12639"><a href="https://business-programming.ru/kontakty/">Контакты</a></li> </ul></div> </div> </div><!--footer-navigation--> <footer id="colophon" class="site-footer site-footer--style-gray full"> <div class="site-footer-inner fixed"> <div class="footer-bottom"> <div class="footer-info"> © 2024 Программирование </div> <div class="footer-counters"><!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(97921369, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/97921369" style="position:absolute; left:-9999px;" alt=""/></div></noscript> <!-- /Yandex.Metrika counter --></div></div> </div> </footer><!--.site-footer--> </div> <button type="button" class="scrolltop js-scrolltop"></button> </div><!-- #page --> <script>var pseudo_links = document.querySelectorAll(".pseudo-clearfy-link");for (var i=0;i<pseudo_links.length;i++ ) { pseudo_links[i].addEventListener("click", function(e){ window.open( e.target.getAttribute("data-uri") ); }); }</script><script type="text/javascript" id="reboot-scripts-js-extra"> /* <![CDATA[ */ var settings_array = {"rating_text_average":"\u0441\u0440\u0435\u0434\u043d\u0435\u0435","rating_text_from":"\u0438\u0437","lightbox_display":"1","sidebar_fixed":"1"}; var wps_ajax = {"url":"https:\/\/business-programming.ru\/wp-admin\/admin-ajax.php","nonce":"ea4cb145f7"}; /* ]]> */ </script> <script type="text/javascript" src="https://business-programming.ru/wp-content/themes/reboot/assets/js/scripts.min.js" id="reboot-scripts-js"></script> <script>window.lazyLoadOptions = [{ elements_selector: "img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, callback_loaded: function(element) { if ( element.tagName === "IFRAME" && element.dataset.rocketLazyload == "fitvidscompatible" ) { if (element.classList.contains("lazyloaded") ) { if (typeof window.jQuery != "undefined") { if (jQuery.fn.fitVids) { jQuery(element).parent().fitVids(); } } } } }},{ elements_selector: ".rocket-lazyload", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, }]; window.addEventListener('LazyLoad::Initialized', function (e) { var lazyLoadInstance = e.detail.instance; if (window.MutationObserver) { var observer = new MutationObserver(function(mutations) { var image_count = 0; var iframe_count = 0; var rocketlazy_count = 0; mutations.forEach(function(mutation) { for (var i = 0; i < mutation.addedNodes.length; i++) { if (typeof mutation.addedNodes[i].getElementsByTagName !== 'function') { continue; } if (typeof mutation.addedNodes[i].getElementsByClassName !== 'function') { continue; } images = mutation.addedNodes[i].getElementsByTagName('img'); is_image = mutation.addedNodes[i].tagName == "IMG"; iframes = mutation.addedNodes[i].getElementsByTagName('iframe'); is_iframe = mutation.addedNodes[i].tagName == "IFRAME"; rocket_lazy = mutation.addedNodes[i].getElementsByClassName('rocket-lazyload'); image_count += images.length; iframe_count += iframes.length; rocketlazy_count += rocket_lazy.length; if(is_image){ image_count += 1; } if(is_iframe){ iframe_count += 1; } } } ); if(image_count > 0 || iframe_count > 0 || rocketlazy_count > 0){ lazyLoadInstance.update(); } } ); var b = document.getElementsByTagName("body")[0]; var config = { childList: true, subtree: true }; observer.observe(b, config); } }, false);</script><script data-no-minify="1" async src="https://business-programming.ru/wp-content/plugins/rocket-lazy-load/assets/js/16.1/lazyload.min.js"></script><script>function lazyLoadThumb(e,alt){var t='<img loading="lazy" src="https://i.ytimg.com/vi/ID/hqdefault.jpg" alt="" width="480" height="360">',a='<button class="play" aria-label="play Youtube video"></button>';t=t.replace('alt=""','alt="'+alt+'"');return t.replace("ID",e)+a}function lazyLoadYoutubeIframe(){var e=document.createElement("iframe"),t="ID?autoplay=1";t+=0===this.parentNode.dataset.query.length?'':'&'+this.parentNode.dataset.query;e.setAttribute("src",t.replace("ID",this.parentNode.dataset.src)),e.setAttribute("frameborder","0"),e.setAttribute("allowfullscreen","1"),e.setAttribute("allow", "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),this.parentNode.parentNode.replaceChild(e,this.parentNode)}document.addEventListener("DOMContentLoaded",function(){var e,t,p,a=document.getElementsByClassName("rll-youtube-player");for(t=0;t<a.length;t++)e=document.createElement("div"),e.setAttribute("data-id",a[t].dataset.id),e.setAttribute("data-query", a[t].dataset.query),e.setAttribute("data-src", a[t].dataset.src),e.innerHTML=lazyLoadThumb(a[t].dataset.id,a[t].dataset.alt),a[t].appendChild(e),p=e.querySelector('.play'),p.onclick=lazyLoadYoutubeIframe});</script> </body> </html>