Подскажите, допустим у меня есть такая структура в html:
<div class="class1 ">
<a>link</a>
</div>
<div class="class2">
<a>link</a>
</div>
<div class="class1">
<a>link</a>
</div>
<div class="class2">
<a>link</a>
</div>
Мне нужна функция PHP которая найдет все div с классом class2 и внутри заменит <a>
на <span>
, но так, чтобы содержимое(то есть 'link') осталось неизменным.
Подскажите как это сделать пожалуйста
Можете воспользоваться библиотеками наподобие Simple HTML DOM:
$html = str_get_html($txt);
foreach($html->find(".class2 a") as $a){
$a->outertext = "<span>" . $a->innertext . "</span>";
}
echo $html;
Ещё один вариант - регулярные выражения (но вариант с Simple HTML DOM предпочтительней):
$txt = preg_replace_callback(
'~<div[^>]+class="class2"[^>]*>\K(.+?)(?=</div>)~s',
function($m){
return preg_replace('~<a[^>]*>(.+?)</a>~', '<span>$1</span>', $m[1]);
},
$txt
);
echo $txt;
См. Демо
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Пытаю отправить XML POST запросом по API в CDEK выдает ошибку: 400 Bad Request, служба поддержки помочь не захотела, сказали только что xml составлен правильно`
Есть массив целыхЗадача:
Столкнулся с такой проблемой: Если пользователь находится на странице, у которой есть параметр GET, как напримерphp?article=51 и хочет авторизоваться...
Пытаюсь написать регистрацию и авторизацию на сайте с помощью API фейсбукаНеобходимые данные от FB приходят, после я их заношу в БД и устанавливаю...