2014-10-18 4 views
0

file_get_contents('some_function.php?' . $parameters_string) (또는 이와 유사한 함수)으로 실행할 수있는 PHP 파일 some_function.php이 있다고 가정 해 봅시다. 이 함수의 매개 변수는 GET 또는 POST HTTP 메소드를 통해 제공 될 수 있습니다.HTTP를 통해 다른 PHP 스크립트에서 함수 호출 : 속도가 느린 것입니까?

대신 include 파일이 필요하고이 스크립트를 한 스크립트 내에서 사용할 수 있습니다.

별도의 프로세스를 실행해야하거나이 기능이 별도의 서버에 있어야하는 경우 합리적 일 수 있습니다. 그러나 그렇지 않다면, 그것을하지 않는 이유가 있습니까? 이 전화가 훨씬 느려질 수 있습니까? 내가 고려해야 할 다른 사항은 없습니까?

저는 전역 변수를 사용할 수 없다는 것을 알고 있습니다. (나는 어쨌든 나쁜 코딩 스타일이라고 생각합니다.)

답변

0

그림과 같이 로컬 file_get_contents 호출을 통해 쿼리 문자열을 전달할 수 없습니다.

원격 HTTP URL에서 file_get_contents을 사용하면 쿼리 문자열을 사용할 수 있지만 로컬 include 또는 file_get_contents보다 상당히 느립니다.

당신은, 덧붙여 말하자면, $_GET/$_POST 변수를 필요로 여전히 include 뭔가 할 수 있습니다 당신은 실제로 문제의 함수를 호출하지만되지 않습니다 file_get_contents()를 사용하여

<?php 

$_GET['something'] = true; 

include('something.php'); 
+0

흠, 놀랍습니다. 실제로 작동하지 않습니다! 'file_get_context'의'context' 매개 변수를 통해 쿼리 문자열을 전달해야하는 것이 맞습니까? –

+0

아니요, HTTP 요청에서 쿼리 문자열을 전달하기 위해 컨텍스트가 필요하지 않습니다. – ceejayoz

1

몇 가지 미리 정의 된 매개 변수를 통과하는 HTTP 요청을 할 것이다 그런 다음 코드의 함수에 전달됩니다.

include()을 사용하면 해당 파일 내에 classes 또는 functions 라이브러리를 보유 할 수 있으며 필요에 따라 직접 호출 할 수 있습니다.

예 :

library.php

function my_function_1() { } 
function my_function_2() { } 

index.php를

include('library.php'); 

my_function_1(); // call the first function 
my_function_2(); // call the second function 
my_function_1(); // call the first function again, just because we can 

당신은 HTTP 요청을 통해 그렇게 할 수 없을 것입니다 및 비록 당신이했다면 hardcodesome_function.php 파일이 위와 같은 일부 기능을 수행하려면 실제로 커다란 코드로 끝나야합니다.이 코드는 사용자의 요구에 맞게 사용자 정의하기가 어려우며 커지면 유지 관리가 거의 불가능합니다.

관련 문제