Попытка автоматически обернуть все теги изображений в поле, которое в настоящее время управляется с помощью CKEditor. Хотелось бы обработать все это с помощью PHP.
Таким образом, это будет пример случайного содержимого поля:
<p> Intro text here<br /> <img alt="sample desc" src="/images/example1.jpg" /> Long article text here... <img alt="sample desc" src="/images/example2.jpg" /> Short article text here... <img alt="sample desc" src="/images/example3.jpg" /> </p>
И мне нужно будет изменить приведенный выше код на это, обернув каждый тег изображения ссылкой, используя уникальный идентификатор, href, соответствующий источнику и заголовку img, соответствующему тексту alt:
<p> Intro text here<br /> <a id="image1" href="/images/example1.jpg" title="sample desc"> <img alt="sample desc" src="/images/example1.jpg" /> </a> Long article text here... <a id="image2" href="/images/example2.jpg" title="sample desc"> <img alt="sample desc" src="/images/example2.jpg" /> </a> Short article text here... <a id="image3" href="/images/example3.jpg" title="sample desc"> <img alt="sample desc" src="/images/example3.jpg" /> </a> </p>
Спасибо за любую помощь, которую вы можете предоставить!
Если это произвольный HTML- код, который поступает из внешних источников, то это наиболее просто, например, путь запроса
$html = htmlqp($html); foreach ($html->find("img") as $img) { $img->wrap("<a href='{$img->attr('src')}'></a>"); } print $html->top("p")->html();
Возможно, вы захотите ввести id=
и title=
аналогично в цикле, но это все.
Дайте id для p..lets say main_p, чтобы выбрать его … или вы можете выбрать любой другой селектор.
$(document).ready(function() { var i=1; $("#main_p img").each(function(){ $(this).wrap('<a id=image'+i+++' href='+$(this).attr("src")+' title="sample desc"/>'); }) });
Это сделает то, какой код вы набрали второй.
Демо-версия