ホームページ バックエンド開発 PHPチュートリアル Linux_PHP チュートリアルで crontab を使用して PHP スクリプトを定期的に実行する

Linux_PHP チュートリアルで crontab を使用して PHP スクリプトを定期的に実行する

Jul 13, 2016 pm 05:41 PM
crontab linux php 一度 利用 存在する タイミング 埋め込む 方法 持っている 脚本 記録

最近この方法が緊急に必要なので、記録して時間があるときに試してください^^

Linux では、crontab + php メソッドを使用できます:

1. crontab –eを使用してスケジュールされたタスクを編集します

内容は次のとおりです:

xx:xx:xx test.phpファイルを実行します

2. php ファイルはファイルの最初の行にインタプリタのパスを加えたものでなければなりません(perl と同じように)

#!/usr/local/bin/php

PHPの実行にはApacheのサポートが必要で、シェルスクリプトの実行にはLinuxのサポートが必要で、Linuxは特定のプログラムを定期的に実行する機能をサポートしています

------------------------------------------------- - --------------

シェルスクリプト言語としてPHPを使う(再録)

--英語原文:Darrell Brogdon、http://www.phpbuilder.com/columns/darrell20000319.php3で公開

おそらく多くの人が PHP を使用して手紙のスケジュール送信などのプログラムを作成することを考えたことがあると思いますが、PHP を定期的に実行する方法はありません。PHPBuilder にアクセスしたときにこの記事を見つけたので、皆さんのために翻訳したいと思います。編集も行いました)、皆さんのお役に立てれば幸いです。

------------------------------------------------- - ---------------------------------

PHP が非常に優れた動的 Web 開発言語 (高速、短い開発サイクルなど) であることは誰もが知っています。しかし、PHP がシェル スクリプトを作成するための言語としても使用できることを認識している人はほとんどいません。PHP は、Perl や Bash ほど強力ではありませんが、特に、次のような場合に優れた利点があります。私のような人は、PHP には詳しいが、Perl にはあまり詳しくありません。

PHP をシェル スクリプト言語として使用するには、PHP を Apache モードではなくバイナリ CGI としてコンパイルする必要があります。バイナリ CGI モードで実行するように PHP をコンパイルする際には、セキュリティ上の問題がいくつかあります。解決策については、PHP マニュアル (http://. /www.php.net)。

最初はシェル スクリプトを書くのに不快に感じるかもしれませんが、徐々に上達します: PHP を一般的な動的 Web ページ作成言語として使用することと、シェル スクリプト言語として使用することの唯一の違いは、シェル スクリプトを最初の行で開始する必要があることです。このスクリプトのプログラム パスを説明します:

#!/usr/local/bin/php -q

PHPがHTTPHeaderを出力しないように、PHP実行ファイルの後にパラメータ「-1」を追加しました(それでもWeb上の動的なWebページとして使用する必要がある場合は、header関数を使用してHTTPHeaderを出力する必要があります)自分自身)。もちろん、シェル スクリプトで PHP の開始タグと終了タグを使用する必要があります:

ここで、シェル スクリプト言語としての PHP の使用をよりよく理解するために例を見てみましょう:

#!/usr/local/bin/php -q

print(「こんにちは、世界! ");

?>

上記のプログラムは単に「Hello, world!」をモニターに出力するだけです。

1. シェルスクリプトの実行パラメータをPHPに渡します:

シェルスクリプトとしてプログラムを実行する際、パラメータを追加することがよくありますが、PHPには埋め込み配列「$argv」があり、シェル実行時にパラメータを簡単に読み込むことができます。スクリプトが実行中です (「$argv[1]」は最初のパラメータに対応し、「$argv[2]」は 2 番目のパラメータに対応します。以下同様)。たとえば、次のプログラム:

#!/usr/local/bin/php -q

$first_name = $argv[1];

$last_name = $argv[2];

printf("こんにちは、%s %s! 今日はどうですか? "、$first_name、$last_name);

?>

上記のコードは、実行時に 2 つのパラメーター、つまり姓と名を必要とします。たとえば、次のように実行します。

[dbrogdon@artemis dbrogdon]$ scriptname.ph ダレル・ブログドン

シェル スクリプトはモニターに出力されます:

こんにちは、ダレル・ブログドン、今日はどうですか?

[dbrogdon@artemis dbrogdon]$

PHP が動的 Web ページ作成言語として使用される場合、「$argv」配列も含まれますが、いくつかの違いがあります。PHP がシェル スクリプト言語として使用される場合、「$argv[0]」はファイルに対応します。スクリプトの名前。動的 Web ページの書き込みに使用される場合、「$argv[1]」は QueryString の最初のパラメータに対応します。

2. インタラクティブなシェルスクリプトを作成します:

シェルスクリプトが勝手に動くだけで対話性がなくなってしまっては意味がありません。 PHP を使用してシェル スクリプトを作成する場合、ユーザー入力情報を読み取るにはどうすればよいでしょうか? 残念ながら、PHP 自体にはユーザー入力情報を読み取る関数やメソッドがありませんが、他の言語に従ってユーザー入力を読み取る関数を記述することができます。情報「読み取り」:

関数 read() {

$fp = fopen(/dev/stdin, r);

$input = fgets($fp, 255);

fclose($fp);

$input を返す;

}

?>

上記の関数はUnixシステムでのみ使用できることに注意してください(他のシステムは対応する変更を加える必要があります)。上記の関数は、ファイル ポインターを開き、次に 255 バイト以下の行を読み取り (これが fgets の動作です)、その後ファイル ポインターを閉じて、読み取った情報を返します。

これで、関数「read」を使用して、以前に作成したプログラム 1 を変更して、より「インタラクティブ」にすることができます。

#!/usr/local/bin/php -q

関数 read() {

$fp = fopen(/dev/stdin, r);

$input = fgets($fp, 255);

fclose($fp);

$input を返す;

}

print("あなたの名前は何ですか? ");

$first_name = read();

print("あなたの姓は何ですか? ");

$last_name = read();

print(" こんにちは、$first_name $last_name さん、初めまして! ");

?>

上記のプログラムを保存して実行すると、予期しないものが表示されるかもしれません。入力の最後の行が 3 行になります。これは、「read」関数によって返される情報に、末尾の改行文字も含まれているためです。 " は姓名に保持されます。末尾の改行文字を削除するには、「read」関数を変更する必要があります:

関数 read() {

$fp = fopen(/dev/stdin, r);

$input = fgets($fp, 255);

fclose($fp);

$input = Chop($input); // 末尾の空白を削除します

$input を返す;

}

?>

3. PHPで書かれたシェルスクリプトを他の言語で書かれたシェルスクリプトに含める:

場合によっては、PHP で書かれたシェル スクリプトを他の言語で書かれたシェル スクリプトに含める必要がある場合があります。実際には非常に簡単です。簡単な例を次に示します:

#!/bin/bash

echo これはコードの Bash セクションです。

/usr/local/bin/php -q <

print("これはコードの PHP セクションです ");

?>

EOF

実際には、PHP を呼び出して次のコードを解析し、出力してから、次のコードをもう一度試します。

#!/bin/bash

echo これはコードの Bash セクションです。

/usr/local/bin/php -q <

$myVar = PHP;

print("これはコードの $myVar セクションです ");

?>

EOF

2 つのコードの唯一の違いは、2 回目に変数 "$myVar" が使用されていることです。実際に PHP がエラー メッセージを表示します。「解析エラー: 2 行目で解析エラーが発生しました。」 "! これは、Bash の変数も "$myVar" であり、Bash パーサーが最初に変数を置き換えるためです。この問題を解決するには、各 PHP 変数の前にエスケープ文字 "" を追加する必要があるため、コードはは次のように変更されます:

#!/bin/bash

echo これはコードの Bash セクションです。

/usr/local/bin/php -q <

$myVar = PHP;

print("これはコードの $myVar セクションです ");

?>

http://www.bkjia.com/PHPjc/486117.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/486117.html技術記事この方法は最近急遽必要になったので、記録して、時間があるときに試してみてください^^ Linux では、crontab + php メソッドを使用できます: 1. crontab e を使用して、スケジュールされたタスクの内容を次のように編集します: xx:xx:xx 実行...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 Apr 06, 2025 am 12:07 AM

PHPの...(SPLAT)演算子は、機能パラメーターと配列を開梱するために使用され、コードのシンプルさと効率を向上させます。 1)関数パラメーター解放:アレイ要素をパラメーターとして関数に渡します。 2)配列の開梱:アレイを別の配列または関数パラメーターに解除します。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) Apr 08, 2025 am 12:03 AM

PHPでは、最終的なキーワードを使用して、クラスが継承されないようにし、メソッドが上書きされます。 1)クラスを決勝としてマークする場合、クラスを継承することはできません。 2)メソッドを最終的にマークする場合、メソッドはサブクラスによって書き換えられません。最終的なキーワードを使用すると、コードの安定性とセキュリティが保証されます。

c言語条件付き編集:初心者向けの詳細なガイドへの実践的なアプリケーション c言語条件付き編集:初心者向けの詳細なガイドへの実践的なアプリケーション Apr 04, 2025 am 10:48 AM

c言語条件付きコンパイルは、コンパイル時間条件に基づいてコードブロックを選択的にコンパイルするメカニズムです。導入方法には、#IFおよび#ELSEディレクティブを使用して、条件に基づいてコードブロックを選択します。一般的に使用される条件付き式には、STDC、_WIN32、Linuxが含まれます。実用的なケース:オペレーティングシステムに従って異なるメッセージを印刷します。システムの数字数に応じて異なるデータ型を使用します。コンパイラに応じて、異なるヘッダーファイルがサポートされています。条件付きコンパイルにより、コードの移植性と柔軟性が向上し、コンパイラ、オペレーティングシステム、CPUアーキテクチャの変更に適応できます。

rootとしてmysqlにログインできません rootとしてmysqlにログインできません Apr 08, 2025 pm 04:54 PM

ルートとしてMySQLにログインできない主な理由は、許可の問題、構成ファイルエラー、一貫性のないパスワード、ソケットファイルの問題、またはファイアウォール傍受です。解決策には、構成ファイルのBind-Addressパラメーターが正しく構成されているかどうかを確認します。ルートユーザー許可が変更されているか削除されてリセットされているかを確認します。ケースや特殊文字を含むパスワードが正確であることを確認します。ソケットファイルの許可設定とパスを確認します。ファイアウォールがMySQLサーバーへの接続をブロックすることを確認します。

libvは2つです libvは2つです Apr 03, 2025 pm 08:03 PM

私はLua-Libuvというプロジェクトを開発しましたが、私の経験を喜んで共有しています。プロジェクトの当初の意図は、libuv(cで書かれた非同期I/Oライブラリ)を使用して、C言語を深く学習せずに簡単なHTTPサーバーを構築する方法を探ることです。 ChatGptの助けを借りて、http.cの基本コードを完了しました。永続的な接続を扱うとき、私は正しいタイミングでリソースを閉鎖し、解放することに成功しました。最初は、接続を閉じることでメインプログラムを終了するシンプルなサーバーを作成しようとしましたが、いくつかの問題がありました。ストリーミングを使用してデータのブロックを送信しようとしましたが、機能している間、これによりメインスレッドがブロックされます。最終的に、私の目標はC言語を深く学ぶことではなかったので、このアプローチをあきらめることにしました。最後に、i

See all articles