FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Medlem
|
Hej alla!
Jag skall bygga en enkel crawler och jag behöver lite hjälp. Har någon en färdig funktion i PHP som plockar ut länkar ur en klump text och lägger dom i en array? Tex: $text = 'sdhdfjzfgkzfhlkzghl<a href="http://www.sdsdh.se">sdfhdzfjfdvkj</a>dsfhdfjdfj'; get_href($text, $array); //$array = array('http://www.sdsdh.se'); Den måste kunna ta _alla_ länkar. Med eller utan www efter http://. Tacksam för svar. |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Administratör
|
Enkelt och för det mesta tillräckligt:
Kod:
preg_match_all('#<a[^>]* href="([^"]+)"[^>]*>([\w\W]+)</a>#i', $text, $matches); |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Medlem
|
Funkar inte alls. Kolla:
http://lando.se/c.php //Kod $text = file_get_contents("http://www.youtube.com"); preg_match_all('#<a[^>]* href="([^"]+)"[^>]*>([\w\W]+)</a>#i', $text, $matches); header("Content-type: text/plain"); print_r($matches); Senast redigerad av Lando den 2009-10-08 klockan 02:02 Anledning: Glömde ";" i inlägget men ej i filen |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Mycket flitig postare
|
preg_match_all('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', $text, $matches);
|
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Nykomling
|
Jag suger på regexp så gjorde en loop etc..
Kod:
function get_href($string) { $result = array(); $x = 0; $array_1 = explode("href=\"",$string); foreach ($array_1 as $k => $v) { if(strstr($v,"http://") == true) { $v = substr($v,0,stripos($v,"\"")); $result[$x++] = $v; } } return $result; } |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Administratör
|
Citat:
![]() Kod:
preg_match_all('#<a[^>]* href="([^"]+)"[^>]*>([\w\W]+)</a>#Ui', $text, $matches); |
||
![]() |
![]() |
Svara |
|
|