PHP Explode: как загрузить и разделить определенную часть HTML? - PullRequest
1 голос
/ 02 апреля 2010

пример: в этом домене http://www.example.com/234234/go.html только один iframe-код

как я могу получить 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;
  } 

спасибо!

Ответы [ 2 ]

3 голосов
/ 02 апреля 2010

Используйте 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>';
2 голосов
/ 02 апреля 2010

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

Если вы просматриваете целые страницы, вы можете использовать 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 очень приятен и прост в обращении (как вы можете видеть).

...