2012-04-18 6 views
-2

Я хочу извлечь данные между <div id="navigation"></div> тегами, используя регулярное выражение из содержимого html (строка). Любая помощь приветствуется.Извлечение данных из содержимого html в PHP

`$ html = load ($ url);

preg_match_all ("/<div>(.+?)<\/div>/is", 
      $html, &$matches); 



$matches = $matches[1]; 
$list = array(); 

foreach($matches as $var) 
{ 
    print("<br>"); 
    print($var."<br>"); 
}` 

Здесь я хочу получить данные из определенного тега div.

+0

вы можете сделать это с JQuery –

+2

НЕ использовать регулярные выражения на HTML: http://stackoverflow.com/a/1732454/118068. И ... что ты пробовал? Мы не собираемся писать что-то с нуля для вас, вы должны доказать, что у вас есть, по крайней мере, TRIED, чтобы сделать что-то в первую очередь. –

ответ

1

Я думаю, что самый простой способ, чтобы это с помощью JQuery или вы можете попробовать этот HTML PHP phraser

http://simplehtmldom.sourceforge.net/

+1

jquery'd будет бесполезным, если это нужно сделать на стороне сервера. –

1

Использование Jquery

Попробуйте этот код

<div id='navigation'> 
    <p > 
     Navigation div contents 
    </p> 
</div> 

// Javascript

var test= $('#navigation').clone(); 
alert(test.text()); 

+0

Hi @Naveen Kumar - Спасибо за ответ. Где вы передаете URL? Не могли бы вы объяснить мне? –

+0

Какой URL-адрес вы принимаете? –

+0

Я имею в виду содержимое внешней веб-страницы, откуда я пытаюсь получить некоторый раздел данных. –

0

Как сказано: You can't parse [X]HTML with regex.

$url = "http://yo.ur/url/goes/here"; 

$dom = new DOMDocument(); 
$dom->loadHTML(file_get_contents($url)); 
$dom->preserveWhiteSpace = false; 
$element = $dom->getElementById('navigation'); 
echo $element->nodeValue; 

Кроме того, PHP load()? Are you kidding me?

+0

load() - это специальная функция класса, которая дает мне содержимое веб-страницы. –

+0

Тогда это должно быть вроде '$ instance-> load()', не так ли? А как насчет 'file_get_contents()'? Кстати, что-то не так с моим кодом? –

+0

load() дает соответствующий результат i.e html в виде строки. Это не проблема. Я отправляю результат первой формы в файл php, где 'file_get_contents()' работает нормально, но когда я отправляю данные второй формы в другой php-файл, 'file_get_contents()' не работает. –

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