2013-12-18 1 views
0

filesize 함수를 사용하여 내가 사용중인 메타 태그에 filesize를 자동으로 쓰려고합니다.GET 변수와 함께 PHP 파일 크기 함수 사용

은 내가 일반적으로 일을 오전하면이 그것을 반환 다음 구문을 사용하는 경우,

<meta name="DC.format" content="<?= filesize($filename); ?> bytes"> 

이제, 예를 들면 :

php 
<meta name="DC.format" content="<?= filesize("index.php"); ?> bytes"> 

resulting html 
<meta name="DC.format" content="6412 bytes"> 

을하지만 내가 얻을 다음 구문을 사용하는 경우 다음과 같은 오류.

php 
<meta name="DC.format" content="<?= filesize("index.php?locale=en_US"); ?> bytes"> 

resulting html 
<meta name="DC.format" content="<br /><b>Warning</b>: filesize(): 
stat failed for index.php?es=./&amp;en=./en/&amp;locale=en_US in 
<b>D:\xampp\htdocs\casasenmeridabaspul.com-v2\header.php</b> 
on line <b>87</b><br /> bytes"> 

제가 생각하기에 파일 크기는 특정 파일의 파일 크기를 PHP 처리 등을하지 않고 얻는 것입니다. 모든 서버 측에서 모든 것을 처리 한 후에 결과 파일 크기를 어떻게 계산할 수 있습니까? 좀 더 세부

는 :

나는 index.php에 이전이 포함되었다 header.php, footer.php 및 index.php에 있습니다. 나는 아마도 컬과 같은 것을 생각하고 있었지만 전문가들에게 맡길 수 있도록 정말 익숙하지 않았습니다.

미리 감사드립니다.

답변

1

파일이 아닙니다. 파일 실행으로 텍스트가 출력됩니다.

<?= strlen(file_get_contents("http://www.example.com/index.php?locale=en_US")); ?> 
+0

'file_get_contents()'는 HTTP 요청을 사용합니다. – ComFreek

+0

@ComFreek : 예, 쿼리 문자열을 전달 중입니다. – AbraCadaver

+0

사이클 문제가 있다고 생각합니다. index.php에 header.php가 포함되어 있고 함수가 header.php에 있으므로 파일 크기를 계산할 때 머리글로 다시 이동하여 함수를 반복하고 아무 것도 계산하지 않습니다. 아마도 $ _GET 매개 변수를 추가하고 식별하는 것이 좋습니다. 어떻게 생각해? –

1

(잘못된) 로컬 경로를 filesize()으로 전달하면 하드 디스크에서 로컬 경로를 확인하려고 시도합니다. 파일 이름을 무효화하는 쿼리 매개 변수로 인해이 작업은 실패합니다.

그러나 URI의 유효한 부분입니다.

PHP: Remote file size without downloading file

이 방법의 성능을 상당히 영향을 미칠 수있는 HTTP 요청을 해고 것을 명심하십시오 : 당신은 따라서 반환 된 내용의 크기를 HTTP 요청을 시작하고 얻을 수 있습니다.

+0

는 HTTP 요청없이 계산하는 방법이 있나요 : 당신이 할 수있는 최선 HTTP 기능/클래스 내 생각을 사용하지 않고 strlen() 또는 mb_strlen()입니까? –

+0

이것은 다음 하나보다 더 복잡해 보입니다. 왜 추천 하시겠습니까? –

+0

@mihail_ov 글쎄, 이것들은 PHP 파일이고 논리를 포함하고 있기 때문에 크기를 계산할 수 있습니다 (내부 요청을 시작하고 내부적으로 extern 소스의 요청을 '시뮬레이트'). AbraCadaver의 솔루션은 항상 파일을 다운로드 할 것이므로 추천합니다! 이것은 심각한 성능 영향을 미칩니다. 내가 제공 한 링크의 대답은 일부 메타 데이터 만 반환하는 'HEAD'요청 만 실행합니다. – ComFreek

관련 문제