如何根据点后的字符数获取文件名

时间:2014-01-28 09:43:42

标签: php regex

你好,我就是这样:

filename mycoolfile.zip?dl=1&token_hash=AAHy4rl_jpJF4Z70W1BQUgXf7IOvLXw

使用php如何捕获文件的名称,这将是anything.ext并摆脱其余部分。 所以返回:mycoolfile.zip 我知道它可以使用正则表达式完成,但我不熟悉那些,只要它适用于anyfilename.ext,我愿意接受任何建议或任何方式来完成任务吗?blablablaafter

只要它正常工作,它的正则表达式是否无关紧要。任何帮助,请

5 个答案:

答案 0 :(得分:1)

使用parse_url获取名称

<?php

$str = "mycoolfile.zip?dl=1&token_hash=AAHy4rl_jpJF4Z70W1";
$parsed_url = parse_url($str);

echo $parsed_url["path"] . "<br>";

答案 1 :(得分:1)

您可以使用parse_url功能:

$u = 'filename mycoolfile.zip?dl=1&token_hash=AAHy4rl_jpJF4Z70W1BQUgXf7IOvLXw';
$arr = parse_url($u);
echo $arr['path']; //=> OUTPUT: filename mycoolfile.zip

答案 2 :(得分:1)

$path = '/lul/what/mycoolfile.zip?dl=1&token_hash=AAHy4rl_jpJF4Z70W1BQUgXf7IOvLXw';
$file = basename(preg_replace('/\?.*$/', '', $path));

答案 3 :(得分:0)

你能用'?'作为explode()中的分隔符并使用数组中的值,或者使用preg_split()

编辑:或使用上面更好的解决方案! : - )

答案 4 :(得分:0)

你也可以试试这个

$u = 'mycoolfile.zip?dl=1&token_hash=AAHy4rl_jpJF4Z70W1BQUgXf7IOvLXw';

$url=explode("?",$u);
echo $url['0'];