regex to parse a URL-type string in PHP
I have a string like so:
http://www.youtube.com/v/Nnp82q3b844&hl=en_US&开发者_如何学Camp;fs=1&
and I want to extract the
Nnp82q3b844
part of it i.e. the part between /v/ and the first &.
Is there and easy way to do this in PHP?
You don't necessary need regular expressions in this case, you can use the parse_url
function to do the work.
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>
The above example will output:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
/path
yes he shouldn't be too hard take a look here for you reference or to understand my answer
after for the regular expression
something like this should make it
preg_match('|http://www.youtube.com/v/([^&]+)&hl=en_US&fs=1&|', $url, $match );
var_dump($match[1]);
The [^&]+
means basically more than or one character that is not a '&', '[]' define some character possibilities [^] make it reverse so any character not in the bracket, + mean 1 or more character.
But you have better to look it by yourself!
I really advise you to take a good look at regular expressions because it can really save you hours of work and once you get how it works, it is really useful!
$str="http://www.youtube.com/v/Nnp82q3b844&hl=en_US&fs=1&";
$s = parse_url($str);
$t = explode("/", $s["path"]);
print preg_replace("/&.*/","",end($t));
精彩评论