programing

변수에 필요한/변수로 변환

codeshow 2023. 9. 4. 20:48
반응형

변수에 필요한/변수로 변환

파일을 요구/포함하고 파일의 내용을 변수로 검색합니다.

시험을 보다

<?php
echo "seconds passed since 01-01-1970 00:00 GMT is ".time();
?>

색인.

<?php
$test=require("test.php");
echo "the content of test.php is:<hr>".$test;
?>

맘에 들다file_get_contents()하지만 여전히 PHP 코드를 실행해야 하는 것보다.이것이 가능합니까?

포함된 파일이 변수를 반환한 경우...

포함합니다.

<?php
return 'abc';

그런 다음 변수에 할당할 수 있습니다.

$abc = include 'include.php';

그렇지 않으면 출력 버퍼링을 사용합니다.

ob_start();
include 'include.php';
$buffer = ob_get_clean();

저도 이 문제가 한 번 있어요, 비슷한 것을 시도해 보세요.

<?php
function requireToVar($file){
    ob_start();
    require($file);
    return ob_get_clean();
}
$test=requireToVar($test);
?>

포함된 파일에 쓸 수 있습니다.

<?php
    return 'seconds etc.';

그리고 당신이 포함하고 있는 파일에서:

<?php
    $text = include('file.php'); // just assigns value returned in file

PHP/7에서는 자체 호출 익명 함수를 사용하여 간단한 캡슐화를 수행하고 글로벌 범위가 임의의 글로벌 변수로 오염되지 않도록 할 수 있습니다.

return (function () {
    // Local variables (not exported)
    $current_time = time();
    $reference_time = '01-01-1970 00:00';

    return "seconds passed since $reference_time GMT is $current_time";
})();

PHP/5.3+의 대체 구문은 다음과 같습니다.

return call_user_func(function(){
    // Local variables (not exported)
    $current_time = time();
    $reference_time = '01-01-1970 00:00';

    return "seconds passed since $reference_time GMT is $current_time";
});

그런 다음 일반적으로 변수 이름을 선택할 수 있습니다.

$banner = require 'test.php';

사용합니다. 실행의 출력을 반환합니다.

생각합니다eval(file_get_contents('include.php'))도와주세요.shell_exec과 같은 다른 실행 방법은 호스팅에서 사용할 수 없도록 설정될 수 있습니다.

require/required는 파일의 내용을 반환하지 않습니다.당신이 하려는 일을 달성하기 위해서는 별도의 전화를 해야 할 것입니다.

편집

사용.echo당신이 원하는 것을 못하게 할 것입니다.그러나 파일의 내용을 반환하면 설명서에 명시된 대로 작업이 완료됩니다. - http://www.php.net/manual/en/function.include.php

필요하거나 포함된 php 파일이 무언가(array, object, string, int, variable 등)를 반환하는 경우에만 가능합니다.

$var = require '/dir/file.php';

그러나 php 파일이 아니고 이 파일의 내용을 평가하려면 다음을 수행할 수 있습니다.

<?php

function get_file($path){

    return eval(trim(str_replace(array('<?php', '?>'), '', file_get_contents($path))));
}

$var = get_file('/dir/file.php');

아니면 이런 것들이

파일에 포함하여php:

<?php
  //include.php file
  $return .= "value1 ";
  $return .= time();

다른 php 파일에서 (이 파일의 내용이 무엇이든 상관 없음):

<?php
  // other.php file
  function() {
    $return = "Values are: ";
    include "path_to_file/include.php";

    return $return;
  }

반환은 다음과 같이 표시됩니다.

Values are: value1, 145635165

요점은 포함된 파일의 내용이 제가 제공한 예에서 기능의 내용과 동일한 범위를 가지고 있다는 것입니다.

언급URL : https://stackoverflow.com/questions/5948395/require-include-into-variable

반응형