This question already has an answer here:
- php preg_match non greedy? 1 answer
I have this string:
http://sh.st/st/8052f1bbc624add41cd2a6236f76cfc8/https://www.rapidvideo.com/embed/o1cTaZbux
And I want to extract urls separate from this.
My code:
$pattern = '@((https?://)?([-\\w]+\\.[-\\w\\.]+)+\\w(:\\d+)?(/([-\\w/_\\.]*(\\?\\S+)?)?)*)@';
$str= "http://sh.st/st/8052f1bbc624add41cd2a6236f76cfc8/https://www.rapidvideo.com/embed/o1cTaZbux";
if($num_found = preg_match_all($pattern, $str, $out))
{
echo "FOUND ".$num_found." LINKS:
";
print_r($out[0]);
}
But the output is wrong:
Array
(
[0] => http://sh.st/st/8052f1bbc624add41cd2a6236f76cfc8/https
[1] => www.rapidvideo.com/embed/o1cTaZbux
)
I want to output:
Array
(
[0] => http://sh.st/st/8052f1bbc624add41cd2a6236f76cfc8
[1] => https://www.rapidvideo.com/embed/o1cTaZbux
)
Please help
</div>