다른 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!
*/
사용된 기능에 대한 설명서
- 명령줄: http://php.net/manual/en/features.commandline.php
include
: http://us2.php.net/manual/en/function.include.phprequire
: http://us2.php.net/manual/en/function.require.phpshell_exec
: http://us2.php.net/manual/en/function.shell-exec.phpcurl_init
: http://us2.php.net/manual/en/function.curl-init.phpcurl_setopt
: http://us2.php.net/manual/en/function.curl-setopt.phpcurl_exec
: http://us2.php.net/manual/en/function.curl-exec.phpcurl_close
: http://us2.php.net/manual/en/function.curl-close.php
백틱 표기법을 사용할 수 있습니다.
`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
'programing' 카테고리의 다른 글
복원 지점에서 Win10을 복구하면 데이터는 삭제되지만 데이터베이스 및 테이블은 Maria에 남아 있습니다.DB (0) | 2023.08.07 |
---|---|
XML 파일 루프 가져오기 (0) | 2023.08.02 |
선언과 항목 구성요소의 차이점은 무엇입니까? (0) | 2023.08.02 |
Android 응용 프로그램을 프로그래밍 방식으로 종료하는 방법 (0) | 2023.08.02 |
프로그래밍 방식으로 탐색 모음에 단추 추가 (0) | 2023.08.02 |