Ако решиш да ползваш DOM-модела, който за подобни случки ми се струва най-лек (и може би най-бърз, заради печения парсер на PHP), тогава извличаш името на линка с
nodeValue. Примерно:
$title = $href->nodeValue;Ам по-добре да видим целия код.
GeSHi (PHP):
<?php
function curl_get_links(){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.linux-bg.org/forum/index.php?action=login2');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'user=ПОТРЕБИТЕЛ&passwrd=ПАРОЛА');
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch);
curl_setopt($ch, CURLOPT_URL, 'http://www.linux-bg.org/forum/index.php?action=unread');
$content = curl_exec ($ch);
curl_close ($ch);
return $content;
}
// ############################# Извличане на всички линкове
$html = curl_get_links();
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$url = $href->getAttribute('href');
$title = $href->nodeValue;
$links[] = $url;
$titles[] = $title;
}
}
foreach($links as $key=>$val){
echo $val." - ".$titles[$key]."\r\n";
}
?>
Малко е дървено потока да се разделя в 2 масива, но пък е по-лесно за четене. Единия масив са ти линковете, а другия масив заглавията, така, че да могат лесно да се напасват за всякакви нужди.