| 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. |
|||
|
|
Svara med citat
|
|
|
#2 | ||
|
|||
|
Administratör
|
Enkelt och för det mesta tillräckligt:
Kod:
preg_match_all('#<a[^>]* href="([^"]+)"[^>]*>([\w\W]+)</a>#i', $text, $matches);
|
||
|
|
Svara med citat
|
|
|
#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 03:02 Anledning: Glömde ";" i inlägget men ej i filen |
|||
|
|
Svara med citat
|
|
|
#4 | |||
|
||||
|
Mycket flitig postare
|
preg_match_all('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', $text, $matches);
|
|||
|
|
Svara med citat
|
|
|
#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;
}
|
||
|
|
Svara med citat
|
|
|
#6 | ||
|
|||
|
Administratör
|
Citat:
Lägg till U modifiern så funkar den. Alltså:Kod:
preg_match_all('#<a[^>]* href="([^"]+)"[^>]*>([\w\W]+)</a>#Ui', $text, $matches);
|
||
|
|
Svara med citat
|
| Svara |
|
|