2011-07-26 2 views
0

여기 내 문제가 있습니다. IIS 7 + PHP 5.3에서 실행되는 웹 사이트가 있습니다. 웹 사이트 계층에는 "vd"라는 가상 디렉터리가 있으며이 파일에는 플래시 파일이 들어 있습니다. VD
        - -IIS 7의 가상 디렉터리에있는 PHP 파일에 액세스하는 방법

에서는 MyApplication
- test.php
는 animation1.swf
        - animation2.swf
- ...

그래서, 그건 브라우저에서 swf 파일에 쉽게 접근하려면 URL에 디렉토리 이름을 넣으면됩니다. http://www.mySite.com/vd/animation1.swf

그러나 PHP 스크립트에서 내 애니메이션에 getimagesize() 함수를 사용하고 싶습니다. 이 때문에 어쨌든 창에 '/'입니다하지 심지어 올바른 디렉토리 분리를 이해하는 것

<?php 
    // test.php 
    var_dump(getimagesize('vd/animation1.swf')); // false 
?> 

:하지만이 경우, PHP는 파일을 찾을 수 없습니다. 하지만 난 가상 디렉터리를 통해 getimagesize 작품을 만드는 방법을 알아낼 수 없다, 성공없이 많은 것들을 시도했다. (DIRECTORY_SEPARATOR 상수를 사용하여 realpath() 함수를 사용했다.).

물론 스크립트에서 실제 경로를 사용할 수는 있지만 가상 경로를 통해 그 경로를 쉽게 수행 할 수 있습니다.

도움이 되시면 감사하겠습니다. 고마워요!

+0

문제는 디렉토리 분리 기호가 아니라 경로 문제 일 가능성이 높습니다. –

답변

1

PHP는 웹 서버를 통하지 않고 오히려 파일을 가져옵니다. 따라서 웹 서버 가상 - 실제 변환이 수행되지 않습니다. 파일의 실제 경로를 사용해야합니다. 파일에 대해 웹 요청을하고 그런 방식으로 크기를 추측 할 수는 있지만 매우 비효율적입니다. OS를 통해 바로 수행하는 것이 훨씬 더 합리적입니다.

변수/정의/클래스 상수를 만들거나 관련 디렉토리의 실제 경로를 저장하는 것을 선호하십시오. 그런 다음 animation1.swf을 코드에 추가하십시오.

+0

.swf 파일에 전체 절대 URL을 제공하여 PHP가 http 계층을 통과하도록 강제 할 수는 있지만 심각하게 고려해야 할 너무 아픈 생각입니다. –

+0

@Marc B : 그게 내가 "당신이 웹 요청을 할 수 있다고 말했을 때"라고 말했던 것입니다. 나는 이것이 문제를 해결하는 방법이 아니라는 데 동의한다. – webbiedave

+0

여러분 감사합니다. 클래스 상수를 사용하여 제안한대로 파일 경로를 저장합니다. – JuCachalot

관련 문제