2014-01-28 2 views
-1

인사 후 문자의 수에 따라 파일 이름을 얻는 방법을 내가 가지고 무엇을 : 어떻게 anything.ext 될 파일의 ​​이름을 캡처하고 제거합니까 PHP를 사용여기에 점

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

나머지는 나는 그것이 정규 표현식을 사용하여 수행 할 수 있습니다 알고 있지만 내가 어떤 제안이나 한이 anyfilename.ext 작동으로 작업을 수행하기에 어떤 식 으로든 열어주는 말들, 그 익숙하지 오전 mycoolfile.zip 을 blablablaafter

: 그래서 반환?

그것의 정규식 또는 작동하지 않는 한 그것은 중요하지 않습니다. 어떤 도움 바랍니다

+0

가 시도 할 수 있습니다? 아마도 하위 문자열과'? '의 색인을 사용할 수 있습니다. – Jerry

+0

예, 항상 있습니다. 그것을하는 방법에 어떤보기? – cppit

+0

문자열에서 부분 문자열을 사용하고'? '색인을 얻는 것이 정말 어렵습니까? – Jerry

답변

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

사용 parse_url 당신은 사용 parse_url 기능의 수

<?php 

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

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

이름을 얻을 : '?'

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

은 사용 수를 explode()의 구분자로 사용하고 배열의 값을 사용하거나 preg_split()을 사용 하시겠습니까?

편집 : 위의 훨씬 더 좋은 해결책을 사용하십시오! :-)

0

또한 이것이`?`항상

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

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