programing

다른 PHP 스크립트에서 PHP 스크립트 실행

oldcodes 2023. 8. 2. 09:24
반응형

다른 PHP 스크립트에서 PHP 스크립트 실행

php를 사용하여 수동으로 트리거하여 서버에서 php 스크립트를 실행하려면 어떻게 해야 합니까?기본적으로 2시간마다 실행되는 꽤 큰 cronjob 파일을 가지고 있지만, 로드될 때까지 기다리지 않고 직접 파일을 트리거할 수 있기를 원합니다(서버 측에서 수행하기를 원합니다).

편집: php 파일에서 파일을 실행하고 싶습니다...명령줄이 아닙니다.

명령줄에서 수동으로 PHP 스크립트를 호출할 수 있습니다.

hello.php
<?php
 echo 'hello world!';
?>

Command line:
php hello.php

Output:
hello world!

설명서를 참조하십시오. http://php.net/manual/en/features.commandline.php


EDIT OP가 질문을 편집하여 중요한 세부 정보를 추가했습니다. 스크립트는 다른 스크립트에서 실행됩니다.

몇 가지 접근법이 있습니다.우선 파일을 쉽게 포함할 수 있습니다.파일을 포함하면 코드가 "실행"됩니다(실제로는 해석됨).함수 또는 클래스 본문에 없는 코드는 즉시 처리됩니다.다음에 대한 문서를 확인하십시오.include(계속) 및/또는require(계속) (참고:include_once그리고.require_once관련이 있지만, 중요한 면에서 다릅니다.차이점을 이해하려면 문서를 확인하십시오) 코드는 다음과 같습니다.

 include('hello.php');
 /* output
 hello world!
 */

두 번째로 조금 더 복잡한 것은 사용하는 것입니다.shell_exec(계속).와 함께shell_exec당신은 php 바이너리를 호출하고 원하는 스크립트를 인수로 전달할 것입니다.코드는 다음과 같습니다.

$output = shell_exec('php hello.php');
echo "<pre>$output</pre>";
/* output
hello world!
*/

마지막으로 가장 복잡한 것은 CURL 라이브러리를 사용하여 브라우저를 통해 요청한 것처럼 파일을 호출할 수 있습니다.여기에서 CURL 라이브러리 설명서를 확인하십시오. http://us2.php.net/manual/en/ref.curl.php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.myDomain.com/hello.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true)

$output = curl_exec($ch);
curl_close($ch);
echo "<pre>$output</pre>";
/* output
hello world!
*/

사용된 기능에 대한 설명서

백틱 표기법을 사용할 수 있습니다.

`php file.php`;

이것을 php 파일의 맨 위에 놓아 인터프리터를 나타낼 수도 있습니다.

#!/usr/bin/php

php를 넣는 곳으로 변경합니다.그런 다음 파일에 대한 실행 권한을 부여하면 php:를 지정하지 않고 파일을 호출할 수 있습니다.

`./file.php`

스크립트의 출력을 캡처하려는 경우:

$output = `./file.php`;
echo $output;

OP는 php 스크립트가 스크립트에서 어떻게 호출되는지에 대한 질문을 개선했습니다.php 문 'require'는 필수 스크립트를 찾을 수 없는 경우 스크립트가 중지되므로 종속성에 좋습니다.

#!/usr/bin/php
<?
require '/relative/path/to/someotherscript.php';

/* The above script runs as though executed from within this one. */

printf ("Hello world!\n");

?>

사용하는 것을 선호합니다.

require_once('phpfile.php');

당신을 위한 많은 선택지와 깨끗한 상태를 유지하는 좋은 방법.

<?php
$output = file_get_contents('http://host/path/another.php?param=value ');
echo $output;
?>

Linux 박스인 경우 다음과 같은 작업을 실행합니다.

php /folder/script.php

Windows에서는 php.exe 파일이 PATH의 일부인지 확인하고 실행할 파일과 유사한 접근 방식을 수행해야 합니다.

php C:\folder\script.php

ssh를 열고 명령을 수동으로 실행하시겠습니까?

php /path/to/your/file.php

저는 "eval"이라는 기능이 올바른 해결책이라고 생각합니다.

공식 문서: https://www.php.net/manual/en/function.eval.php

코드는 다음과 같은 형식이어야 합니다.

$some_code = retrieve_or_generate_some_php_code();
eval($some_code);

명령줄에서:

> php yourfile.php

가능하고 쉬운 한 줄 솔루션은 다음을 사용하는 것입니다.

file_get_contents("YOUR_REQUESTED_FILE");

또는 평형벨트(예: CURL).

사용해 보십시오.

header('location: xyz.php'); //thats all for redirecting to another php file

이것이 당신이 찾고 있는 것 같습니다.

<?php include ('Scripts/Php/connection.php');
//The connection.php script is executed inside the current file ?>

스크립트 파일은 .txt 형식일 수도 있습니다. 계속 작동해야 합니다. 저에게 적합합니다.

예.

<?php include ('Scripts/Php/connection.txt');
//The connection.txt script is executed inside the current file ?>

언급URL : https://stackoverflow.com/questions/8450696/execute-a-php-script-from-another-php-script

반응형