2015-11-29 2 views
0

У меня есть HTML-код из URL-адреса. То, что я хочу достичь, - это получить только текстовое содержимое внутри div. Любая идея, если она может быть достигнута. структура будет похожа на этуСнимайте и извлекайте текстовое содержимое из каждого вложенного div на странице

<div class="first"> 
    <div class="second"> 
    Some content inside second div 
    <div class="third"> 
     Some more content inside third div 
    </div> 
    </div> 
</div> 

Когда я извлечь содержимое Я хочу получать простое содержание текста внутри что-то массив как этого

Array(
[first]=> 
[second]=>Some content inside second div 
[third]=>Some more content inside third div 
); 

Я пытаюсь добиться этого с помощью strip_tags, но я почему-то я растерялся о его разбиении и добавлении в массив. Любой, кто может иметь хоть какую-нибудь идею, пожалуйста, помогите.

+0

Возможный дубликат [PHP DOMDocument получить текст между двумя SETS тегов] (http://stackoverflow.com/questions/27674012/php-domdocument-get-text-between-two-sets-of-tags) – Timofey

ответ

1
<?php 
function clearArray($arr) { 
    if(is_array($arr)) { 
     foreach($arr as $element) { 
      $cont=trim($element); //make sure to have cr/lf parts removed (difference between line seperator) 
      if(!empty($cont)) { 
       $newArray[]=$cont; 
      } 
     } 
     return $newArray; 
    } 
    return false; 
} 
$content='<div class="first"> 
    <div class="second"> 
    Some content inside second div 
    <div class="third"> 
     Some more content inside third div 
    </div> 
    </div> 
</div>'; 
$strippedContent=strip_tags($content); 
$content=explode("\n", $strippedContent); 
$content=clearArray($content); 
print_r($content); 

Этот вывод будет, что:

Array ([0] => Some content inside second div [1] => Some more content inside third div) 

Если вы извлекаете эту информацию из внешней страницы, которую я настоятельно рекомендую вам использовать DOMDocument и XPath для получения элементов.

+0

Работы как очарование ... Спасибо. :) – SanketR

Смежные вопросы