2014-07-17 4 views
2

PHP "include"함수를 사용하여 내 메인 스크립트와 다른 도메인의 파일을 포함하고 포함 된 파일의 기본 스크립트에서 변수를 사용하고 싶습니다. 이 같은PHP가 외부 서버에서 포함

뭔가 :

의 index.php : (다른 도메인)

<?php 
    $hello = "Hello"; 
    $world = "World"; 
    include "http://example.com/myfile.php"; 
?> 

myfile.php

<?php 
    echo $hello . " " . $world; 
    // Should output "Hello World" 
?> 

윌이 작품, 또는 그것을 수행 서버 설정/사용 권한에 따라 다릅니 까? the manual에서

+1

포함하고있는 파일이 신뢰할 수있는 것이 확실한 경우가 아니라면이 작업을 수행하지 마십시오. 그럼에도 불구하고, 이것은 나에게 불안감을 안겨줍니다. 실제로 두 도메인을 모두 제어 할 수 있다면 포함 된 파일의 사본이 두 개 더 안전합니다. 다른 도메인에서 일부 데이터를 가져 오려고하는 경우 올바르게 작업하고 작은 API를 작성하여 작업하십시오. –

+0

아니요 작동하지 않습니다. 당신이 그것을 포함 시켰을 때, 당신은 그 소스를 얻지 못합니다. 'myfile.php'의 출력을 얻습니다. $ hello 나 $ world가 스크립트에 정의되어 있지 않기 때문에 에러가됩니다. '.php'를'.phps'로 변경하거나 다른 도메인이 PHP로 그 파일을 해석하지 않고 있는지 확인해야합니다. –

+0

@MikeW, 나는 Joomla의 여러 설치 (사용자 정의 Joomla 모듈 사용)에 공통 도움말 문서를 포함시키기 위해이 작업을 수행하고 있습니다. 두 도메인을 모두 제어 할 수 있습니다. 나는 작은 API를 만드는 아이디어를 좋아하지만, 어떻게해야할지 모른다. – johanpw

답변

1

으로, 그리고 내 경우에는 옵션이 아니다 : 그렇지 않으면 당신과 함께 현재 include 라인을 대체하여 그 일의 해키 방법을 시도 할 수 있습니다. 나는이 일을 결국 :

의 index.php : (다른 도메인)

<?php 
    $hello = "Hello"; 
    $world = "World"; 
    echo file_get_contents("http://example.com/myfile.php?hello=$hello&world=$world"); 
?> 

myfile.php

<?php 
    $hello = $_GET['hello']; 
    $world = $_GET['world']; 
    echo $hello . " " . $world; 
    // Should output "Hello World" 
?> 

그것은 내가 할 필요 것에 대해 잘 작동하지만 솔루션을 개선 할 수 있을지 확신합니다.

1

:

원격 파일

만큼 php.ini에서 allow_url_fopen을 활성화하면, 당신은으로 대부분의 함수에 파일명과 HTTP 및 FTP URL을 사용할 수 사용 매개 변수 또한 URL은 include, include_once, require 및 require_once 문과 함께 사용할 수 있습니다 (PHP 5.2.0부터 allow_url_include를 사용해야 함). PHP에서 지원하는 프로토콜에 대한 자세한 내용은 Supported Protocols 및 Wrappers를 참조하십시오.

1

allow_url_include이 활성화되어 있는지 여부는 php.ini에 따라 작동합니다. allow_url_include이 활성화되어야한다, 몇 가지 답변을 지적

echo file_get_contents('http://example.com/myfile.php');