如果文件网址有一定的扩展名,正则表达式会发现什么

par*_*ark 5 php regex

我的有效网址可能看起来或多或少像这样

http://someurl.com/some/path/file.pdf
or 
http://someurl.com/some/path/file.pdf?param=value
or 
http://someurl.com/some/path/file.pdf?param=value&second=val
Run Code Online (Sandbox Code Playgroud)

文件扩展名可能是.pdf,或其他扩展名,如.jpg或.psd,或者根本没有.

我存储的url没有someurl.com部分,所以它some/path/file.pdf是url 的一部分

如果存在,我如何使用正则表达式来了解文件扩展名?正则表达式是正确的工具吗?

ale*_*lex 10

我会用parse_url()和pathinfo().这些是这项工作最正确的功能.

$url = 'http://someurl.com/some/path/file.pdf?param=value';

$path = parse_url($url, PHP_URL_PATH);

$ext = pathinfo($path, PATHINFO_EXTENSION);

var_dump($ext); // string(3) "pdf"
Run Code Online (Sandbox Code Playgroud)

请参阅CodePad.org.

你可以使用正则表达式,但它会更难以遵循.