PHPを使ってPHPを手動で起動すると、自分のサーバーにPHPスクリプトを実行させるにはどうすればよいですか?基本的に私は2時間ごとに実行される非常に大きなcronジョブファイルを持っていますが、ロードを待たずに手動でファイルを起動できるようにしたいのです(私はそれをサーバー側でやりたいと思っています)。別のPHPスクリプトからPHPスクリプトを実行
EDIT:phpファイルからファイルを実行したい...コマンドラインではありません。
PHPを使ってPHPを手動で起動すると、自分のサーバーにPHPスクリプトを実行させるにはどうすればよいですか?基本的に私は2時間ごとに実行される非常に大きなcronジョブファイルを持っていますが、ロードを待たずに手動でファイルを起動できるようにしたいのです(私はそれをサーバー側でやりたいと思っています)。別のPHPスクリプトからPHPスクリプトを実行
EDIT:phpファイルからファイルを実行したい...コマンドラインではありません。
あなたは
hello.php
<?php
echo 'hello world!';
?>
Command line:
php hello.php
Output:
hello world!
コマンドラインから手動でPHPスクリプトを呼び出すことができますは、マニュアルを参照してください:http://php.net/manual/en/features.commandline.php
EDIT OPは重要なディテールを追加するために、質問を編集しました:スクリプトは別のスクリプトによって実行されます。
いくつかのアプローチがあります。まず最初に、最も簡単なのは、単にファイルを含めるだけです。ファイルをインクルードすると、そのコードは「実行」されます(実際には解釈されます)。関数またはクラス本体に含まれていないコードはすぐに処理されます。 include
(docs)またはrequire
(docs)の文書を参照してください(注:include_once
とrequire_once
は関連していますが、重要な点で異なります)。コードは次のようになります。
include('hello.php');
/* output
hello world!
*/
第ややより複雑でshell_exec
(docs)を使用することです。 shell_exec
を使用すると、phpバイナリを呼び出し、目的のスクリプトを引数として渡します。あなたのコードは次のようになります。
$output = shell_exec('php hello.php');
echo "<pre>$output</pre>";
/* output
hello world!
*/
最後に
、かつ最も複雑な、あなたはそれがブラウザを介して要求されたかのようにファイルを呼び出すためにCURLライブラリを使用することができます。ここCURLライブラリのドキュメントをチェックアウト: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.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!
*/
ドキュメントの機能に
curl_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それはLinuxボックスである場合は、のようなものを実行します:Windowsでは
php /folder/script.php
を、あなたのphp.exeのファイルがPATHの一部であることを確認する必要があり、同様のアプローチを行うだろうコマンドラインで
php C:\folder\script.php
:実行したいファイルを
> php yourfile.php
オープンsshとcommanを実行手動で?
php /path/to/your/file.php
あなたはバッククォートの表記を使用することができます。
`php file.php`;
あなたがPHPを置く場所に
#!/usr/bin/php
変更を:
はまた、通訳を示すために、PHPファイルの先頭にこれを置くことができます。 はその後、ファイルに実行権限を与え、あなたは、PHPを指定せずにファイルを呼び出すことができます。
`./file.php`
スクリプトの出力キャプチャしたい場合:
$output = `./file.php`;
echo $output;
この回答は関係ありませんが、知っておくと良いです。 –
を私はこれがあなたが何であるかだと思いますスクリプトファイルも.txt形式にすることができ
<?php include ('Scripts/Php/connection.php');
//The connection.php script is executed inside the current file ?>
を探して、それはまだ動作するはずです、それは私
に対して行います3210<?php include ('Scripts/Php/connection.txt');
//The connection.txt script is executed inside the current file ?>
OPは、PHPスクリプトは、スクリプトから呼び出されたかに彼の質問を洗練しました。必要なスクリプトが見つからない場合にスクリプトが停止するので、phpステートメント 'require'は依存性に適しています。あなたのコードの中から "チェーン" 他のPHPプログラムをへ
#!/usr/bin/php
<?
require '/relative/path/to/someotherscript.php';
/* The above script runs as though executed from within this one. */
printf ("Hello world!\n");
?>
、 "ヘッダ"
header("Location:index.php?page=menus");
初期スクリプトがCRONから実行されている場合、同じ問題を抱えている他の人の場合には、今発見したようにヘッダーが実行されません。 – BeNice
を使用し、私はあなたのためにそこにオプションの
require_once('phpfile.php');
多くを使用することを好みます。物事を清潔に保つ良い方法です。
<?php
$output = file_get_contents('http://host/path/another.php?param=value ');
echo $output;
?>
は、いくつかのコンテキストを提供し、コードを説明します。 –
cronと同じコマンドを実行するだけですか?あるいは単に 'php file.php'を実行しますか? –
crontabからコマンドをコピーしてコマンドラインに貼り付けてみませんか? –
@Rocket PHPファイルからやりたいです – domino