サボテン??
サボテンのデバッグ xampp
C:Documents and Settingsissdu>C:/xampp/php/php -q C:/xampp/htdocs/cacti/poller.php --force --debug
09/25/2013 03:31:52 AM - POLLER:ポーラー[0] 注: ポーラー Int: '300'、スケジュールされた Ta
sk Int: '300'、最後からの時間: '118'、最大実行時間 '298'、ポーラー実行数: '1'
09/25/2013 03 :31:52 AM - POLLER: Poller[0] DEBUG: リモート プロセスを生成しようとしています
s [CMD: c:/xampp/php/php.exe, ARGS: -q "c:/xampp/htdocs/cacti/ cmd.php" 0 1]
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 件中 1 件のポーリングを待機しています。
1 件中 1 件のポーリングを待機しています。
1 件中 1 件のポーリングを待機しています。
1 件中 1 件のポーリングを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
OK u:0.01 s:0.03 r:8.19rs。
OK u:0.01 s:0.03 r:8.1909/25/2013 03:32:02 AM - システム統計: 時間:9.8750 メソッド
OK u:0.01 s:0.03 r:8.23reads:N/A ホスト数:2 プロセスあたりのホスト数: 2 データソース:29 RRDsPr
OK u:0.01 s:0.03 r:8.23rs。
OK u:0.01 s:0.03 r:8.25rs。
OK u:0.01 s:0.03 r:8.25rs。
OK u:0.01 s:0.03 r:8.25rs。
OK u:0.01 s:0.03 r:8.28rs。
OK u:0.01 s:0.03 r:8.34rs。
OK u:0.01 s:0.03 r:8.34rs。
OK u:0.01 s:0.03 r:8.72rs。
OK u:0.01 s:0.03 r:8.72rs。
OK u:0.01 s:0.03 r:8.72rs。
OK u:0.01 s:0.03 r:8.72rs。
OK u:0.01 s:0.03 r:8.72rs。
OK u:0.01 s:0.03 r:8.73rs。
OK u:0.01 s:0.03 r:8.75rs。
OK u:0.01 s:0.03 r:8.75rs。
ループ時間: 10.44llers。
睡眠時間: 289.36lers。
合計時間: 10.64llers。
1 つのポーラーのうち 1 つを待機しています。
C:Documents and Settingsisdu>
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 件中 1 件のポーリングを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
OK u:0.01 s:0.03 r:3.36W
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
OK u:0.01 s:0.03 r:3.45
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
エラー: 十分な引数がありません。
1 つ中 1 つのポーリングを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
OK u:0.01 s:0.03 r:4.421 個中 1 個のポーリングを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
1 つのポーラーのうち 1 つを待機しています。
OK u:0.01 s:0.03 r:4.50
1 つのポーラーのうち 1 つを待機しています。
OK u:0.01 s:0.03 r:4.511 個中 1 個のポーリングを待機しています。
??????有解?方法??
厳格な標準: C:xampphtdocscactilibping.php オンライン 382 では変数のみが参照によって渡される必要があります。
厳格な標準: C では変数のみが参照によって渡される必要があります: xampphtdocscactilibping.php オンライン 382
厳格な標準: C:xampphtdocscactilibping.php オンライン 382 で変数のみを参照渡しする必要があります
回复讨论(解决方案)
那要看 C:xampphtdocscactilibping.php 第382 行是怎么写的了
/*此?382行 get the socket response */
switch(socket_select($r = array($this->socket), $w = NULL, $f = NULL, $to_sec, $to_usec)) {
ケース 2:
/* 接続が拒否されました */
$error = "拒否されました";
休憩;
ケース 1:
/* 終了時刻を取得*/
$this->time = $this->get_time($this->precision);
/* get packet response */
$code = @socket_recv($this->socket, $this->reply, 256, 0);
/* 該当する場合はエラーを取得します*/
$err = socket_last_error($this->socket);
/* 返信メッセージを設定します */
$this->ping_status = $this->time * 1000;
$this->ping_response = "UDP Ping 成功 (" . $this->time*1000 . " ms)";
$this->close_socket();
true を返します。
ケース 0:
/* タイムアウト */
$error = "タイムアウト";
休憩;
}
$retry_count++;
}
} else {
$this->ping_response = "宛先アドレスが指定されていません";
$this->ping_status = "ダウン";
false を返します。
}
} /* end ping_udp */
function ping_tcp() {
/* ホストは空白以外である必要があります */
if ($this->host["hostname"]) {
/* 変数を初期化する */
$this->ping_status = 「ダウン」;
$this->ping_response = "デフォルト";
/* タイムアウト変数を確立します */
$to_sec = floor($this->timeout/1000);
$to_usec = ($this->timeout%1000)*1000;
/* snmp_transport を指定している場合はホスト名をクリーンアップします*/
$this->host["hostname"] = str_replace("tcp:", "", strto lower($this->host["hostname"])) ;
$this->host["hostname"] = str_replace("udp:", "", strto lower($this->host["hostname"]));
/* ホストの IP アドレスを決定する */
if ($this->is_ipaddress($this->host["hostname"])) {
$host_ip = $this->host["hostname"] ;
}else{
$host_ip = gethostbyname($this->host["hostname"]);
if (!$this->is_ipaddress($host_ip)) {
cacti_log("警告: TCP Ping エラー: gethostbyname failed for " . $this->host["hostname"]);
$this->response = 「TCP Ping Error: gethostbyname failed for 」 。 $this->host["ホスト名"];
false を返します。
}
}
/* ソケットを初期化します */
if (substr_count($host_ip,":") > 0) {
if (define("AF_INET6")) {
$this->socket = socket_create (AF_INET6、SOCK_STREAM、SOL_TCP);
}else{
$this->ping_response = 「PHP バイナリ は IPv6 をサポートしていません」;
$this->ping_status = "ダウン";
cacti_log("警告: IPv6 ホストが検出されました。PHP バージョンは IPv6 をサポートしていません");
false を返します。
}
}else{
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
}
while (1) {
/* set start time */
$this->start_time();
/* 即時復帰を許可します */
socket_set_nonblock($this->socket);
@socket_connect($this->socket, $host_ip, $this->port);
socket_set_block($this->socket);
switch(socket_select($r = array($this->socket), $w = array($this->socket), $f = array($this->socket), $to_sec, $to_usec )){
ケース 2:
/* 接続が拒否されました */
$this->time = $this->get_time($this->precision);
if (($this->time*1000) <= $this->timeout) {
$this->gt;ping_response = "TCP Ping 接続が拒否されました (" . $this->time*1000 . " MS)";
$this->ping_status = $this->time*1000;
}
$this->close_socket();
true を返します。 /*「接続が拒否されました」の意味: ホストは生きています (そうでない場合は ping がタイムアウトします) */
ケース 1:
/* 接続されているので、合計時間を計算して返します */
$this->time = $this-> ;get_time($this->精度);
if (($this->time*1000) <= $this->timeout) {
$this->gt;ping_response = "TCP Ping Success (" . $this->time*1000 . " MS)";
$this->ping_status = $this->time*1000;
}
$this->close_socket();
true を返します。
ケース 0:
/* タイムアウト */
$this->ping_response = "TCP ping タイムアウト";
$this->ping_status = "ダウン";
$this->close_socket();
false を返します。
}
}
} else {
$this->ping_response = "宛先アドレス が指定されていません";
$this->ping_status = "ダウン";
false を返します。
}
} /* end ping_tcp */
function ping($avail_method = AVAIL_SNMP_AND_PING, $ping_type = PING_ICMP, $timeout=500, $retries=3) {
/* 変数の初期化 */
$ping_ ping = true;
$ping_snmp = true;
$this->ping_status = 「ダウン」;
$this->ping_response = 「設定により ping が実行されません。」;
$this->snmp_status = "ダウン";
$this->snmp_response = 「設定または ping の結果により、SNMP は実行されませんでした。」;
$this->avail_method = $avail_method;
/* 可用性のための短絡 none */
if ($avail_method == AVAIL_NONE) {
$this->ping_status = "0.00";
true を返します。
}
if ((!function_exists("socket_create")) && ($avail_method != AVAIL_NONE)) {
$avail_method = AVAIL_SNMP;
cacti_log("警告: PHP ではソケットのサポートが有効になっていません。SNMP ping に戻ります");
}
if (($retries <= 0) || ($retries > 5)) {
$this->retries = 2;
}else{
$this->retries = $retries;
}
if ($timeout $this->timeout = 500;
}else{
$this->timeout = $timeout;
}
/* 小数精度 は 0.0000 */
$this->precision = 5;
/* snmp ping が 最低限 */
$ping_result = false; で選択されています。
$snmp_result = false;
/* icmp/udp ping test */
if (($avail_method == AVAIL_SNMP_AND_PING) ||
($avail_method == AVAIL_SNMP_OR_PING) ||
($avail_method == AVAIL_PING)) {
if ($ping_type == PING_ICMP) {
$ping_result = $this->ping_icmp();
}else if ($ping_type == PING_UDP) {
$ping_result = $this->ping_udp();
}else if ($ping_type == PING_TCP) {
$ping_result = $this->ping_tcp();
}
}
/* snmp テスト */
if (($avail_method == AVAIL_SNMP_OR_PING) && ($ping_result == true)) {
$snmp_result = true;
$this->snmp_status = 0.000;
}else if (($avail_method == AVAIL_SNMP_AND_PING) && ($ping_result == false)) {
$snmp_result = false;
}else if (($avail_method == AVAIL_SNMP) || ($avail_method == AVAIL_SNMP_AND_PING)) {
if (($this->host["snmp_community"] == "") && ($this-> host["snmp_version"] != 3)) {
/* コミュニティ文字列なしの snmp バージョン 1/2 は、SNMP テストが成功すると仮定します
下位互換性の問題により */
$snmp_result = true;
$this->snmp_status = 0.000;
}else{
$snmp_result = $this->ping_snmp();
}
}
switch ($avail_method) {
case AVAIL_SNMP_OR_PING:
if (($this->host["snmp_community"] == "") && ($this->host["snmp_version"] ! = 3)) {
if ($ping_result) {
return true;
}else{
return false;
}
}elseif ($snmp_result) {
return true;
}elseif ($ping_result) {
return true;
}else{
return false;
}
case AVAIL_SNMP_AND_PING:
if (($this->host["snmp_community"] == "") && ($this->host["snmp_version"] != 3)) {
if ($ping_result ) {
true を返します。
}else{
return false;
}
}elseif (($snmp_result) && ($ping_result)) {
return true;
}else{
return false;
}
case AVAIL_SNMP:
if ($snmp_result) {
return true;
}else{
return false;
}
case AVAIL_PING:
if ($ping_result) {
return true;
}else{
return false;
}
デフォルト:
false を返します。
}
} /* end_ping */
function is_ipaddress($ip_address = '') {
/* ipv4/v6 を確認する */
if (substr_count($ip_address, ":")) {
/* 圧縮されたドットformat */
if (substr_count($ip_address, "::")) {
$ip_address = str_replace("::", ":", $ip_address);
$segments = explode(":", $ip_address);
}else{
$segments = explode(":", $ip_address);
if (sizeof($segments) != 8) {
/* 8 セグメントである必要があります */
return false;
}
}
$i = 0;
foreach ($segments as $segment) {
$i++;
if ((trim($segment) == "") && ($i == 1)) {
続ける;
}elseif (!is_numeric("0x" . $segment)) {
return false;
}
}
true を返します。
}else if (strlen($ip_address) <= 15) {
$octets = explode('.', $ip_address);
$i = 0;
if (count($octets) != 4) {
return false;
}
foreach($octet as $octet) {
if ($i == 0 || $i == 3) {
if(($octet < 0) || ($octet > 255)) {
false を返す;
}
}else{
if(($octet < 0) || ($octet > 255)) {
return false;
}
}
$i++;
}
true を返します。
}else{
return false;
}
}
}
?>
最初に回避できます
socket_select($r = array($this->socket), $w = NULL, $f = NULL, $to_sec, $to_usec)
書き込み
@socket_select($r = array($ this ->socket), $w = NULL, $f = NULL, $to_sec, $to_usec)
error_reporting(E_ALL ^ E_STRICT); もできます
プロトタイプ
intソケット_select (array &read, array &write) , array &excel, int tv_sec [, int tv_usec] )
最初の 3 つのパラメーターが参照によって渡されていることがわかります
php5.3 以降、参照はエンティティから生成される必要があります。そうしないとエラーが報告されます
それ将来接続の回避が機能しなくなる可能性は否定できません
正しい 書き込み方法は
$r = array($this->socket);
$f = NULL; $r, $w, $f, $to_sec, $to_usec)
??ボード、
??は解決されました、

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

php8.1の列挙関数は、指定された定数を定義することにより、コードの明確さとタイプの安全性を高めます。 1)列挙は、整数、文字列、またはオブジェクトであり、コードの読みやすさとタイプの安全性を向上させることができます。 2)列挙はクラスに基づいており、トラバーサルや反射などのオブジェクト指向の機能をサポートします。 3)列挙を比較と割り当てに使用して、タイプの安全性を確保できます。 4)列挙は、複雑なロジックを実装するためのメソッドの追加をサポートします。 5)厳密なタイプのチェックとエラー処理は、一般的なエラーを回避できます。 6)列挙は魔法の価値を低下させ、保守性を向上させますが、パフォーマンスの最適化に注意してください。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。
