runthis Posted July 15, 2010 Share Posted July 15, 2010 Im not new to php at all, but havent had the need to use preg_match I want to get all the links off of a page, but i want the href, not the class or title or anything heres what i have to get the links <a\s[^>]*href=(\"??)(\/stuff[^\" >]*?)\\1[^>]*>(.*)<\/a> that matches any link that starts with /stuff Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/ Share on other sites More sharing options...
runthis Posted July 15, 2010 Author Share Posted July 15, 2010 bumb Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/#findComment-1086614 Share on other sites More sharing options...
runthis Posted July 15, 2010 Author Share Posted July 15, 2010 bumpity bumpity bump bump bump Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/#findComment-1086625 Share on other sites More sharing options...
AbraCadaver Posted July 15, 2010 Share Posted July 15, 2010 I would use something like: "/href=['\"]([^'\"]+)['\"]/" Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/#findComment-1086631 Share on other sites More sharing options...
runthis Posted July 15, 2010 Author Share Posted July 15, 2010 How would i add that to this <a\s[^>]*href=(\"??)(\/stuff[^\" >]*?)\\1[^>]*>(.*)<\/a> Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/#findComment-1086635 Share on other sites More sharing options...
AbraCadaver Posted July 15, 2010 Share Posted July 15, 2010 How would i add that to this <a\s[^>]*href=(\"??)(\/stuff[^\" >]*?)\\1[^>]*>(.*)<\/a> You wouldn't. What I gave you will get what is inside the href quotes. You'll have to be more specific about what you want, maybe with an example URL. Also, to get all links you'll need preg_match_all(). Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/#findComment-1086640 Share on other sites More sharing options...
runthis Posted July 15, 2010 Author Share Posted July 15, 2010 okay, what i want is to grab all the link starting with "/stuff" and filter out everything else, thats what i meant sorry. Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/#findComment-1086644 Share on other sites More sharing options...
AbraCadaver Posted July 15, 2010 Share Posted July 15, 2010 okay, what i want is to grab all the link starting with "/stuff" and filter out everything else, thats what i meant sorry. Not tested but should work: preg_match_all("#href=['\"](/stuff[^'\"]+)['\"]#", $source, $matches); print_r($matches); Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/#findComment-1086651 Share on other sites More sharing options...
runthis Posted July 15, 2010 Author Share Posted July 15, 2010 Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 't' Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/#findComment-1086655 Share on other sites More sharing options...
AbraCadaver Posted July 15, 2010 Share Posted July 15, 2010 Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 't' Did you notice that I am now using # as the delimiters instead of / ? Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/#findComment-1086657 Share on other sites More sharing options...
runthis Posted July 15, 2010 Author Share Posted July 15, 2010 Absolutely posted your example exactly Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/#findComment-1086659 Share on other sites More sharing options...
AbraCadaver Posted July 15, 2010 Share Posted July 15, 2010 Dunno, works for me: $source='<a href="/stuff/test.php?foo=bar">click</a>'; preg_match_all("#href=['\"](/stuff[^'\"]+)['\"]#", $source, $matches); print_r($matches); Array ( [0] => Array ( [0] => href="/stuff/test.php?foo=bar" ) [1] => Array ( [0] => /stuff/test.php?foo=bar ) ) Link to comment https://forums.phpfreaks.com/topic/207859-preg_match-help/#findComment-1086665 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.