2015-07-25 2 views
-1

Я хочу удалить теги PHP, чтобы показать этот результат:Удалить часть тега в 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 

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

+0

ли 1: номера строк или они включены в строку: и 2? Нам нужна дополнительная информация, где вы получаете строку, статично ... – PHPhil

+0

вы можете попробовать это 'preg_replace ('@ (\ d +:). * Title =" ([a-zA-Z0-9] +) ". * @ i ',' $ 1 $ 2 ', $ text)' или 'preg_replace (' @ (\ d +:). * title =" ([^ "] +)". * @ i ',' $ 1 $ 2 ', $ text) ' – anonymous

+0

да, они включены в строку. –

ответ

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; 
+0

с использованием CURL в C++ Я загружаю весь исходный код в txt-файле, чем используя php i, вставляю все, что в строке. Я не знаю, какой из них я могу использовать. –

+0

okey, похоже, это работа. Если у меня есть еще или , что они не должны отображаться и некоторый случайный текст (вне тегов), который должен отображаться ред? пример:  <пролет класс = "р PLT p76"> ** 76 **<промежуток класс = "р PRT p86"> ** 86 ** **A. Mitrović** ** 19 ** ** 4.4k * * Все, что должно быть выделено полужирным шрифтом. Благодарю вас за ваше время –

0

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

В каждой строке принимают начальные цифры и значение атрибута заголовка

$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); 

эхо $ ул;

результат

1: Germania 
2: FC Schalke 04