0

.phpファイルを修正しようとしていますが、いくつか問題があります。

エコーまたは印刷機能を使用してスクリプトから出力を受信する必要がありますが、エコー結果が不完全に表示されます。

これは私の.phpです:

<?php
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

require_once "PHPTelnet.php";

$SUBSCRIBER = $_POST["SUBSCRIBER"];

$COUNT = $_POST["COUNT"];


if ($SUBSCRIBER == "HOME")

{
        echo "It's HOME<br>";

        if ($COUNT=="ACTIVE_FLOW")

        {

        echo "Value is ACTIVE_FLOW";

        $script = "exec cf2:/scripts/active_flow_count.cfg";

        }
}

echo "<pre>";

echo "<pre>";

私のエコー出力は次のとおりです。

It's HOME
Value is ACTIVE_FLOW
exec cf2:/scripts/active_flow_count.cfg 

=====================================================
Application-Assurance flow record search, Version 1.0
Search Start Time:     "12/12/2012 22:23:08" (UTC)
 Search Criteria:
  group[:partition]:   1:1
  aa-sub:              1/1/1:302 (sap)
  protocol name:       none specified
  application name:    none specified
  app-group name:      none specified
  flow-status:         active
  start-flowId:        none specified
  classified:          none specified
  server-ip:           none specified
  server-port:         none specified
  client-ip:           none specified
  bytes-tx:            none specified
  flow-duration:       none specified
  max-count:           none specified
  search-type:         default
=====================================================
FlowId  Init  Src-ip                                  Dst-ip                                  Ip-prot     Src-prt Dst-prt Protocol               Application            Pkts-tx    Bytes-tx             Pkts-disc  Bytes-disc Time-ofp(UTC)         Time-olp(UTC)        
2107678 no    200.141.223.79                          10.101.75.199                           tcp         57238   1356    "ftp_data"             "FTP"                  687100     1026970850           0          0          "12/12/2012 21:00:46" "12/12/2012 22:23:09"

これよりもはるかに多くの行が含まれている必要があります。

この「12/12/201222:23:09」の二重引用符が表示されたときにエコーストップする可能性はありますか?

4

2 に答える 2

0

この正確な日時がどこかに表示されたら、「停止」という言葉をエコーすることを意味する場合は、

if(preg_match("/\b\"12\/12\/2012 22:23:09\"\b/i")==true)
{
    echo "stop"
}
于 2012-12-12T22:55:19.277 に答える
0

スクリプトの重要な部分が表示されていません。あなたがする必要があるのは、出力を表示する前に処理することです。つまり、出力を直接 echo() するのではなく文字列にロードするか、出力バッファーを使用して echo() されたコンテンツをキャッチします。次に、「12/12/2012 22:23:09」の位置を見つけ、substr を使用してそれとその前の文字列の内容を取得します。以下のコードは、正規表現を使用して位置を見つける方がはるかに優れていることに注意してください。ただし、これはどのように機能するかを示す例です。

次のようになります。

<?php

//....

ob_start();
if ($SUBSCRIBER == "HOME")

{
        echo "It's HOME<br>";

        if ($COUNT=="ACTIVE_FLOW")

        {

        echo "Value is ACTIVE_FLOW";

        $script = "exec cf2:/scripts/active_flow_count.cfg";

        }
}
$out = ob_get_contents();
ob_end_clean();

// Should use requex but this will work
// Find the pos of "Start Time:" then add 22 for the chars in '"xx/xx/xxxx xx:xx:xx"'
$pos = strpos($out, "Start Time:")+22;
echo substr($out, 0, $pos);

//....

?>
于 2012-12-12T23:08:19.127 に答える