简体   繁体   中英

How to get a string from url using preg_match?

I want to extract id from an url using php preg_match..

For eg: $string = 'http://www.mysite.com/profile.php?id=1111'; I need output as '1111'

using preg_match.

I tried this :

if(preg_match('/(?:https?):\/\/www\.mysite\.com\/profile\.php\?id\=[0-9]/', $string, $match) > 0){

    $id =  $match[1];
}

But am getting output as ' profile.php '

Can someone help me please?

Why not use parse_url with parse_str

$url_component = parse_url($string);
parse_str($url_component['query'], $output);
echo $output['id'];
$pattern = '/(?:https?):\/\/www\.mysite\.com\/profile\.php\?id\=([0-9]+)/';

This should work fine! But do this with parse_url

if there is only one parameter in the url you can use explode function to do that easily, like

$string = 'http://www.mysite.com/profile.php?id=1111';
$ex=explode('=',$string);
$id=$ex[1];

You may also use parse_url function of php.

Hope this help,

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM