Intereting Posts

Как получить текст в массиве между всеми тегами <span> из HTML?

Я хочу получить текст в массиве между всеми тегами <span> </span> из HTML, я попытался с этим кодом, но он возвращает только одно событие:

 preg_match('/<span>(.+?)<\/span>/is', $row['tbl_highlighted_icon_content'], $matches); echo $matches[1]; 

Мой HTML:

 <span>The wish to</span> be unfairly treated is a compromise attempt that would COMBINE attack <span>and innocen</span>ce. Who can combine the wholly incompatible, and make a unity of what can NEVER j<span>oin? Walk </span>you the gentle way, 

Мой код возвращает только одно вхождение тега span, но я хочу получить весь текст из каждого тега span в HTML в виде массива php.

вам нужно переключиться на функцию preg_match_all

Код

 $row['tbl_highlighted_icon_content'] = '<span>The wish to</span> be unfairly treated is a compromise attempt that would COMBINE attack <span>and innocen</span>ce. Who can combine the wholly incompatible, and make a unity of what can NEVER j<span>oin? Walk </span>you the gentle way,'; preg_match_all('/<span>.*?<\/span>/is', $row['tbl_highlighted_icon_content'], $matches); var_dump($matches); 

как вы можете видеть, теперь array правильно заполнен, чтобы вы могли echo все ваши совпадения

используйте preg_match_all() это то же самое, он вернет все вхождения в массив $ matches

http://php.net/manual/en/function.preg-match-all.php

вот код для получения всего значения span в массиве

  $str = "<span>The wish to</span> be unfairly treated is a compromise attempt that would COMBINE attack <span>and innocen</span>ce. Who can combine the wholly incompatible, and make a unity of what can NEVER j<span>oin? Walk </span>you the gentle way,"; preg_match_all("/<span>(.+?)<\/span>/is", $str, $matches); echo "<pre>"; print_r($matches); 

вы будете

 Array ( [0] => Array ( [0] => The wish to [1] => and innocen [2] => oin? Walk ) [1] => Array ( [0] => The wish to [1] => and innocen [2] => oin? Walk ) ) 

вы можете использовать o или 1 индекс

Если вы не возражаете против использования стороннего компонента, я бы хотел показать вам компонент Symfony DomCrawler . Это очень простой способ разобрать HTML / XHTML / XML-файлы и перемещаться по узлам.

Вы даже можете использовать CSS Selectors. Ваш код будет примерно таким:

 $crawler = new Crawler($html); $spans = $crawler->filter("span"); echo $spans[1]->getText();; 

Вам даже не нужно иметь полный HTML / XML-документ, если вы назначаете только часть <span>...</span> своего кода, он будет работать нормально.