development

PHP 파일을 변수에 어떻게로드합니까?

big-blog 2020. 9. 4. 07:53
반응형

PHP 파일을 변수에 어떻게로드합니까?


PHP 파일을 변수에로드해야합니다. 처럼include();

다음과 같은 간단한 HTML 파일을로드했습니다.

$Vdata = file_get_contents("textfile.txt");

하지만 이제 PHP 파일을로드해야합니다.


다음을 사용하는 경우 PHP의해 생성 된 콘텐츠 를 얻고 싶다고 가정합니다 .

$Vdata = file_get_contents('http://YOUR_HOST/YOUR/FILE.php');

그렇지 않으면 PHP 파일소스 코드 를 얻으려면 .txt 파일과 동일합니다.

$Vdata = file_get_contents('path/to/YOUR/FILE.php');

ob_start();
include "yourfile.php";
$myvar = ob_get_clean();

ob_get_clean ()


eyze가 제안한 것처럼 http : //를 사용 하는 경우 PHP 스크립트의 출력 만 읽을 수 있습니다. 실행중인 스크립트와 동일한 서버에있는 경우에만 PHP 스크립트 자체를 읽을 수 있습니다. 그런 다음 다음과 같은 것을 사용할 수 있습니다.

$Vdata = file_get_contents('/path/to/your/file.php");

웹 서버를 통해 실행하지 않고 파일을로드하려면 다음이 작동합니다.

$string = eval(file_get_contents("file.php"));

그러면 파일 내용이로드됩니다. PHP 파일은 평가 위해 <?php?>태그 로 완전히 구성 eval되어야합니다.


이론적으로는 fopen을 사용한 다음 stream_get_contents를 사용할 수 있습니다.

$stream = fopen("file.php","r");
$string = stream_get_contents($stream);
fclose($stream);

전체 파일을 $ string으로 읽어야하며 평가해서는 안됩니다. 나는 당신이 로컬 경로를 지정할 때 file_get_contents가 작동하지 않았다는 것에 놀랐습니다 ....


또는 출력 버퍼링을 시작하고 포함 / 요구를 수행 한 다음 버퍼링을 중지 할 수 있습니다. ob_get_contents ()를 사용하면 다른 PHP 파일에서 출력 한 내용을 변수로 가져올 수 있습니다.


파일에 다음과 같은 return 문이있는 경우 :

<?php return array(
  'AF' => 'Afeganistão',
  'ZA' => 'África do Sul',
  ...
  'ZW' => 'Zimbabué'
);

이것을 다음과 같은 변수로 가져올 수 있습니다.

$data = include $filePath;

서버에서 allow_url_fopen 이 꺼져 있으면 file_get_contents ()가 작동하지 않습니다 . 대부분의 공유 웹 호스트는 보안 위험으로 인해 기본적으로 꺼져 있습니다. 또한 PHP6 에서는 allow_url_fopen 옵션이 더 이상 존재하지 않으며 모든 기능이 영구적으로 꺼져있는 것처럼 작동합니다. 따라서 이것은 사용하기에 매우 나쁜 방법입니다.

http를 통해 파일에 액세스하는 경우 사용하는 가장 좋은 옵션은 cURL입니다.

참고 URL : https://stackoverflow.com/questions/1272228/how-do-i-load-a-php-file-into-a-variable

반응형