2009-10-14 1 views
0

나는 내 웹 응용 프로그램에서 다음을 수행하려고 : 내 서버 (I 공유 호스팅 환경에서 아파치를 사용)를 .JPG에 액세스하는 PHP 스크립트를 실행을하는 것이 가능PHP 스크립트를 통해 리소스를 가져 오는 방법은 무엇입니까?

<img src="static.example.com/image01.jpg?width=300&height=300" /> 

(또는 내가 선택한 파일 형식) 파일을 제공하는 대신에?

나는 PHP 스크립트가 올바른 헤더 등을 설정해야한다는 것을 알고 있으며, 처음에는 어떻게 실행될 수 있는지 궁금합니다.

나는이 있도록 할 수 있습니다 알고

<img src="static.example.com/get_image.php?name=image_01.jpg&width=300&height=300" /> 

하지만 내가하고 싶은 방법이 아니다.

답변

3

하위 디렉토리에 있거나 다른 모든 static.example.com이 수행 중이라면 mod_rewrite를 사용할 수 있습니다.

하위 디렉토리의 .htaccess에 다음과 같이 추가하십시오.

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{query_string} ^height=([^&]+)&width=([^&]+) 
    RewriteRule (.*\.jpg|.*\.png|.*\.gif) controller.php?name=$1&height=%1&width=%2 
</IfModule> 

편집 : 위를 시도하십시오. 다른 모든 것과 마찬가지로, 테스트되지 않았습니다 ... :)

GET 매개 변수의 순서가 중요 해집니다.

test.jpg?height=100&width=120 

는 아파치가 디렉토리 PHP 스크립트로 .JPG 서비스를 제공 할 것

controller.php?name=test.jpg&height=100&width=120 


또 다른 방법으로 설정을하셔야합니다. httpd.conf 또는 php.conf를보고 .php를 찾으십시오. 해당 지시어를 찾아 .jpg에 대해 <Directory> 내에 복사하십시오. 나는 이것을 실제로 하나의 디렉토리에 시도한 적이 없지만 궁극적으로 mod_rewrite 라우트보다 빠를 것이다.

뭔가 같은 :

<Files *.jpg> 
SetOutputFilter PHP 
SetInputFilter PHP 
</Files> 
AddType application/x-httpd-php .jpg 
+0

나는 있으리라 믿고있어 *로 변경 될 수 있습니다 * JPG 또는 다른 정규식 내가 원하는 확장에 맞게 올바른..? –

+0

거의 작동하지만 매개 변수가 제대로 전달되지 않는다고 생각합니다. 이 내 쿼리 문자열 : image01.jpg 높이 = 200 & 폭 = 300 이 내 htaccess로에있는 것입니다 :.. 한다 RewriteRule에 한다 RewriteEngine (* \ JPG를 | * \.. $ _SERVER [ 'QUERY_STRING']을 인쇄하면 q = image01.jpg가됩니다 (높이 = 200 및 너비 = 300을주고 싶습니다). 도움 주셔서 감사합니다. –

+0

$ _GET [ 'q']를 출력하면 어떻게됩니까? –