PHP – Удалить тег <span> из строки

У меня есть строка с этим html:

<div> <span> 1 </span> <a href="#"> <span> 2 </span> </a> <a href="#"> <span> 3 </span> </a> <a href="#"> <span> 4 </span> </a> .... </div> 

как удалить теги <span> из ссылок ( <a> )?

похоже, вы пытаетесь удалить ссылку с текущей страницы. Если это так, вы можете взглянуть на этот учебник. Это можно сделать тремя способами. Использование javascript, css, php и css. Если это так, вы можете посмотреть его учебник .

Вы также хотите удалить содержимое тегов <span> ? Если да, попробуйте следующее:

 $string = preg_replace("/<span[^>]+\>/i", "", $string); 

В противном случае метод str_replace, который опубликовал nute, будет работать нормально.

Если вы просто хотите удалить теги span внутри тега, и ваш формат – именно то, что вы разместили, то следующее соответствует этой спецификации.

 $string = str_replace('<a href="#"> <span>', '<a href="#">', $string); $string = str_replace("</span> </a>", "</a>", $string); 

Если формат вообще изменится, вам может потребоваться регулярное выражение или использовать DomDocument для анализа HTML.

Функция strip_tags() предназначена для этой цели и позволяет вам указывать теги HTML, которые не следует удалять:

 $stripped = strip_tags($string, '<div><a>'); 

Указание '<div><a>' поскольку второй аргумент сохраняет элементы <div> и anchor.

 $string = str_replace("<span>", "", $string); $string = str_replace("</span>", "", $string); 

Или вы можете использовать это:

 $new_string = preg_replace('/(\<span\>|\<\/span\>)/', '', $string);