2014-11-30 2 views
1

сказать, что яразбор HTML документа для тега привязки

<a href="www.myurl/point.html" class="l" style="color:#436DBA;" onclick="return rs(this,'8 Stunning Linguistic Miracles of The Holy Quran | Kinetic Typography 144p (Video Only).mp4');">&raquo; Download MP4 &laquo;</a> - <b>144p (Video Only)</b> - <span> 19.1</span> MB<br /> 

HTML страница, как этот, я хочу разобрать его с простым домом PHP парсером и я хочу получить скачать mp4 114p 19,1, как из положить в то время как я попробовал этот код

foreach($displaybody->find('a ') as $element) { 
     // echo $element->innertext . '<br/>'; 

вернулся мне скачать mp4 только как я анализирую остальные значения скачать mp4 114p 19,1 пожалуйста, помогите мне

ответ

0

Вы не можете использовать <a> тег больше, так как некоторые о е текст, который вы пытаетесь получить доступ не внутри него больше, предназначаться сам документ, а затем использовать ->plaintext:

$html = <<<EOT 
<a href="www.myurl/point.html" class="l" style="color:#436DBA;" onclick="return rs(this,'8 Stunning Linguistic Miracles of The Holy Quran | Kinetic Typography 144p (Video Only).mp4');">&raquo; Download MP4 &laquo;</a> - <b>144p (Video Only)</b> - <span> 19.1</span> MB<br /> 
EOT; 

$displaybody = str_get_html($html); 
echo $displaybody->plaintext; 

Вот еще один способ доступа к каждой строке через DOMDocument с XPath:

// load the sites html page in DOMDocument 
$dom = new DOMDocument(); 
libxml_use_internal_errors(true); 
$html_page = file_get_contents('http://www.mohammediatechnologies.in/download/downloadtest.php?name=8KPEiGqDQHg'); 
$dom->loadHTML(mb_convert_encoding($html_page, 'HTML-ENTITIES', 'UTF-8')); 
libxml_clear_errors(); 
$xpath = new DOMXpath($dom); 

$data = array(); 
// target elements which is inside an anchor and a line break (treat them as each row) 
$links = $xpath->query('//*[following-sibling::a and preceding-sibling::br]'); 

$temp = ''; 
foreach($links as $link) { // for each rows of the link 

    $temp .= $link->textContent . ' '; // get all text contents 

    if($link->tagName == 'br') { 
     $unit = $xpath->evaluate('string(./preceding-sibling::text()[1])', $link); 
     $data[] = $temp . $unit; // push them inside an array 
     $temp = ''; 
    } 
} 

echo '<pre>'; 
print_r($data); 

Sample Output

+0

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

+0

@ U ser1735121, но я не могу догадаться, с кем вы работаете, я могу работать только с тем, который вы опубликовали. вам нужно опубликовать то, с чем вы работаете, по крайней мере, сайт, который вы соскабливаете в любом случае – Ghost

+0

Я работаю с этим сайтом http://www.mohammediatechnologies.in/download/downloadtest.php?name=8KPEiGqDQHg Я хочу разделить URL-адрес и затем загрузите mp4 480 пикселей и 19.1 mb вещь в строке –