Jarfilli Posted September 15, 2010 Share Posted September 15, 2010 Hello guys, I am having a little trouble with a regex. I am trying to match megaupload links eg. http://www.megaupload.com/?d=N241NIPD it's always 'http://www.megaupload.com/?d=' followed by 8 alphanumeric characters. the regex I have is preg_match('/http\:\/\/www\.megaupload\.com\/(?:|..\/)\?d=.{8}(\/|)/',$url,$matches);I have been at it for hours and for the life of me can't figure out why it's not working. If anyone would like to tell me how stupid I am being I would appreciate it. Thanks in advance Jarfilli Quote Link to comment https://forums.phpfreaks.com/topic/213524-tiny-problem/ Share on other sites More sharing options...
.josh Posted September 15, 2010 Share Posted September 15, 2010 There are a couple of prefab php functions for parsing url strings....you can do something like this: function getQueryParam($url,$param) { $query = parse_url((string)$url); parse_str($query['query'],$query); return (isset($query[$param])) ? $query[$param] : false; } $url = "http://www.megaupload.com/?d=N241NIPD"; $d = getQueryParam($url,'d'); echo $d; But if you want to do it with regex (based on that url given, no other "rules" for what it could be...): $url = "http://www.megaupload.com/?d=N241NIPD"; preg_match('~http://www\.megaupload\.com/\?d=([a-z0-9]{8})~i',$url,$d); echo $d[1]; Quote Link to comment https://forums.phpfreaks.com/topic/213524-tiny-problem/#findComment-1111495 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.