diondev Posted July 29, 2009 Share Posted July 29, 2009 I'm trying to grab a member ID from an URL. The url looks like this: http://www.mysite.com/member.php?u=43 I want to get the number 43 Heres my code, which isn't working (if I print the array $mem_id it is empty): <?php preg_match('$member.php?u=([0-9]+)$i', $url, $mem_id); ?> It's probably something simple I'm missing. Quote Link to comment https://forums.phpfreaks.com/topic/167943-solved-memberphpu0-9i/ Share on other sites More sharing options...
MadTechie Posted July 29, 2009 Share Posted July 29, 2009 very close but ? mean optional so php? means ph or php and . means any so member(any character)ph and $ also has special meaning at then end, it means last So we need to escape ? and . also [0-9] can be shorted to \d so to sum up, try <?php preg_match('/member\.php\?u=(\d+)$/', $url, $mem_id); ?> EDIT; this mean ends with number and before that has member.php?u= Quote Link to comment https://forums.phpfreaks.com/topic/167943-solved-memberphpu0-9i/#findComment-885751 Share on other sites More sharing options...
diondev Posted July 29, 2009 Author Share Posted July 29, 2009 Thanks. Quote Link to comment https://forums.phpfreaks.com/topic/167943-solved-memberphpu0-9i/#findComment-885770 Share on other sites More sharing options...
killah Posted July 29, 2009 Share Posted July 29, 2009 Would'nt it be much simpler to just do $u = $_GET['u']; echo $u; Thus resulting in 43 Quote Link to comment https://forums.phpfreaks.com/topic/167943-solved-memberphpu0-9i/#findComment-886250 Share on other sites More sharing options...
nrg_alpha Posted July 29, 2009 Share Posted July 29, 2009 Assuming there's a query string with a single value, you could track the query part of the url using parse_url: $url = 'http://www.mysite.com/member.php?u=43'; echo substr($arr = parse_url($url, PHP_URL_QUERY), strpos($arr, '=')+1); // Output: 43 Quote Link to comment https://forums.phpfreaks.com/topic/167943-solved-memberphpu0-9i/#findComment-886352 Share on other sites More sharing options...
MadTechie Posted July 30, 2009 Share Posted July 30, 2009 Would'nt it be much simpler to just do $u = $_GET['u']; echo $u; Thus resulting in 43 Well your assume that it was part of the URL used to access the page and not a URL in a database or a document, Quote Link to comment https://forums.phpfreaks.com/topic/167943-solved-memberphpu0-9i/#findComment-886812 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.