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. 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= 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. 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 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 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, Link to comment https://forums.phpfreaks.com/topic/167943-solved-memberphpu0-9i/#findComment-886812 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.