2010-04-01 1 views
1

пример: в этом домене http://www.example.com/234234/go.html есть только один iframe-кодPHP Explode: Как загрузить и разделить конкретную часть HTML?

как я могу получить url в iframe-коде?

go.html:

<iframe style="width: 99%;height:80%;margin:0 auto;border:1px solid grey;" src="i want this url" scrolling="auto" id="iframe_content"></iframe> 

у меня есть этот фрагмент, но его очень плохо закодированы ..

function downloadlink ($d_id) 
    { 
    $res = @get_url ('' . 'http://www.example.com/' . $d_id . '/go.html'); 
    $re = explode ('<iframe', $res); 
    $re = explode ('src="', $re[1]); 
    $re = explode ('"', $re[1]); 
    $url = $re[0]; 
    return $url; 
    } 

спасибо!

+0

Я добавил другой метод к моему ответу на ваш предыдущий вопрос: http://stackoverflow.com/questions/2563256/php-explode-and-get-url-not-showing-up-the-url/2563295# 2563295 –

+0

Почему есть два вопроса? –

ответ

3

Используйте синтаксический анализатор html, такой как simple_html_dom, чтобы разобрать html.

$html = file_get_html('http://www.example.com/'); 

// Find all iframes 
foreach($html->find('iframe') as $element) 
    echo $element->src . '<br>'; 
+0

Ничего себе! Тот же фрагмент, разделенный на 15 секунд. :) –

+0

спасибо, но у simple_html_dom.php есть 36 КБ! :), что большой для этой небольшой функции, или есть еще один файл меньшего размера для использования? – elmaso

+0

php может анализировать файл 36kb быстрее, чем требуется для чтения с диска;) Поверьте мне, скорость программиста намного важнее скорости кода в этом случае. –

2

Я не знаю, какой объем у вас здесь - это только этот фрагмент или вы просматриваете целые страницы?

Если вы просматриваете целые страницы, вы можете использовать PHP Simple HTML DOM Parser. слегка измененный пример с их сайта:

// Create DOM from URL or file 
$html = file_get_html('http://www.google.com/'); 

// Find all iframes 
foreach($html->find('iframe') as $element) 
     echo $element->style . '<br>'; 

Этот пример кода проходит через все iframes на странице, и выводит их src собственность.

PHP имеет встроенные функции для этого (например, SimpleXML), но я считаю, что DOM Parser очень красив и прост в обращении (как вы можете видеть).

+0

+1 приятный ответ;) но я победил вас на 3 секунды LOL –

+0

Да, но это потому, что я потратил время, чтобы на самом деле вставить ссылку в нужную библиотеку: D –