2016-12-20 2 views
0

이 같은 이미지 가지고다른 URL로 이미지를 표시하는 방법은 무엇입니까?

/images/10.png 

하고 난 어레이 가지고

$arr = [10 => 'pretty_name']; 

가 10.png하지만 pretty_name을 사용하여 화상을 표시 할 수 있습니까?

<img src="/images/pretty_name.png"/> 

나는 적절한 헤더 (: 이미지/PNG의 Content-Type)을 반환 이미지를 시도했다. 그것은 작동하지만 느립니다.

예를 들어 htaccess로 할 수 있습니까?

+1

그래서 /images/pretty_name.png를 사용하여 /images/10.png를 표시 하시겠습니까? 먼저 배열 키 (array_search)를 찾은 다음 /images/pretty_name.png에 img src를 찾아야합니다. – JustBaron

+0

예. 이렇게하고 싶지만 DOM에 예쁜 이름을 표시해야합니다. 10.png는 HTML에서 볼 수 없습니다. – Vuer

+0

왜 그걸 원하니? 정의하고 얻을 이미지의 이름. 이름을 변경하면 더 이상 없습니다. 그게 내 생각이야. – Jusfunny

답변

2

이 같은 htaccess로 뭔가를 사용할 수 있습니다

RewriteEngine on 
RewriteRule ^/?images/([0-9]+)/.*(\..*)$ /images/$1$2 

이 그런 다음 HTML에서이 같은 이미지의 URL을 작성할 수 있습니다

<img src="/images/10/pretty_name.png" /> 

다시 쓰기 규칙은 파일 이름을 구문 분석합니다 (이 경우 10)과 확장자 (.png)를 제거하고 "pretty_name"부분을 완전히 무시하고 실제 경로로 다시 작성합니다.

단점은 입니다. "pretty name"이 작동합니다. 예를 들어, 이러한 모든 점은 /images/10.png하는 것 :

/images/10/pretty_name.png 
/images/10/something_random.png 
/images/10/earth_photo.png 

확인 꽤 이름이 ID를 일치하는지 확인하는 역전 검사가 없기 때문이다. 이것이 허용 가능한지 여부는 응용 프로그램에 따라 다릅니다.

+0

좋은 생각. 고맙습니다! – Vuer

+0

좋은 접근 방식/해결 방법 – JustBaron

관련 문제