html — удалить часть тега в переполнении стека

Я хочу удалить теги из php, чтобы показать эти результаты:

До:

1: <span class="n n21" title="Germania">&nbsp;</span>
2: <a href="/team/34?hl=it-IT" title="FC Schalke 04"><img data-src="http://2015.sofifa.org/15/teams/24/34.png" class="list-mini" src="http://2015.sofifa.org/15/teams/24/34.png"></a>

После

1: Germania
2: FC Schalke 04

Любая помогает? Заранее спасибо.

-1

Решение

Если это статические строки, то регулярное выражение должно работать, но если вы читаете с веб-страницы где-то на веб-страницах, я бы предложил использовать DOMDocument.

Поскольку вы читаете данные в виде строки, это может представлять интерес? Он ничего не удаляет из строковых данных — просто находит искомые атрибуты элемента и возвращает их обратно.

            $data='
<span class="n n21" title="Great Britain">&nbsp;</span>
<span class="n n21" title="Germania">&nbsp;</span>
<span class="n n21" title="france">&nbsp;</span>
<a href="/team/34?hl=it-IT" title="FC Schalke 04"><img data-src="http://2015.sofifa.org/15/teams/24/34.png" class="list-mini" src="http://2015.sofifa.org/15/teams/24/34.png"></a>
<a href="/team/35?hl=it-IT" title="Porto"><img data-src="http://2015.sofifa.org/15/teams/24/35.png" class="list-mini" src="http://2015.sofifa.org/15/teams/24/34.png"></a>
<a href="/team/36?hl=it-IT" title="England"><img data-src="http://2015.sofifa.org/15/teams/24/34.png" class="list-mini" src="http://2015.sofifa.org/15/teams/24/34.png"></a>';


libxml_use_internal_errors( true );
$dom = new DOMDocument('1.0','utf-8');
$dom->validateOnParse=false;
$dom->standalone=true;
$dom->preserveWhiteSpace=true;
$dom->strictErrorChecking=false;
$dom->substituteEntities=false;
$dom->recover=true;
$dom->formatOutput=true;

$dom->loadHTML( $data );

$parse_errs=serialize( libxml_get_last_error() );
libxml_clear_errors();

/* get titles from SPAN elements */
$col=$dom->getElementsByTagName('span');
foreach( $col as $node ) echo $node->getAttribute('title').'<br />';
/* Get titles from A tags */
$col=$dom->getElementsByTagName('a');
foreach( $col as $node ) echo $node->getAttribute('title').'<br />';

$dom=null;
1

Другие решения

preg_match() могу помочь тебе.

$html = '<span class="n n21" title="Germania">&nbsp;</span>';
$pattern = '/title="(.+)"/';
preg_match($pattern, $html, $match);

print $match[1];

Regex Вот

0

это поможет

preg_replace('#<span.*?\s+title="([^"]+)">&nbsp;.*?<a\s+.*?title="([^"]+)"><img#sui', "$1\n$2", text);
echo nl2br($text);
0

В каждой строке взять начальные цифры и значение атрибута title

$str = '1: <span class="n n21" title="Germania">&nbsp;</span>
2: <a href="/team/34?hl=it-IT" title="FC Schalke 04"><img data-src="http://2015.sofifa.org/15/teams/24/34.png" class="list-mini" src="http://2015.sofifa.org/15/teams/24/34.png"></a>';

$str = preg_replace('/^(\d+:\s).+\stitle=\"([^\"]+)\".+$/m', '\1\2', $str);

echo $ str;

результат

1: Germania
2: FC Schalke 04
0
По вопросам рекламы [email protected]