将PHP文本文件解析为多个变量

时间:2014-12-03 16:06:02

标签: php

我正在尝试解析包含不同类型配置(路由器配置)的TXT文件,例如:

    Router model C1i IPSec CR 1 95 CPU MPC860      S/N: 444/33333
    1 LAN, 1 ISDN Line, 1 XDSL Line
    CIT software version: 10.4.2.0.3 Oct 22 2004 10:24:51


    Router *
    Router *p 3
    Console Operator
    Router +net atm

    -- ATM Console --
    Router atm0/0 monitor+list all

    Description: ADSL over POTS (Alcatel DynaMiTe P) over Motorola MPC860 SAR

    ---- Status ----
    Transmission:       ENABLED     Phy rate:        320 kbps
    Reception:          ENABLED     Phy rate:       3008 kbps
    Status:                  UP     for       0/04:10:54 (days/hh:mm:ss)

    ---- Statistics ----
    Tx user cells        =     308481         Rx user cells        =    5059007
    Tx no user cells     =          0         Rx no  user cells    =          0
                                              Rx invalid           =          0
                                              Rx missinserted      =          0
                                              Rx future functions  =          0
    Tx bytes             =   16349493         Rx bytes             =  268127371
    Tx last 5 min (kbps) =          0         Rx last 5 min (kbps) =          0

    Linked structs       =        100 (10 free)

我想从PHP解析,检测有趣的信息,如序列号,端口配置,ATM速度等。

问题在于我不知道如何检测不同的单词,例如S / N,“传输”,“接收”,“状态”。有一个名为strpos的函数,但它只适用于一个术语,而不适用于各种术语。

    <?php


    if ($gestor = (@fopen("documento.txt", "r")))
            {
            while (($bufer = fgets($gestor, 4096)) !== FALSE) 
                {
                switch ($bufer)
                    {
                    case "Router Model":
                    echo"DETECTADO";
                    break;
                    default:
                    echo $bufer;
                    break;
                    }

                echo "<br />";
                }
            if (!feof($gestor)) {
                echo "Error: fallo inesperado de fgets()\n";
            }
            fclose($gestor);
            }
        else
            {
        echo "Error al abrir el fichero";

            }

    ?>

我的最后一个选项是为我想要存储的每个变量解析整个TXT文件,但效率不高。

谢谢。

1 个答案:

答案 0 :(得分:1)

在一天结束时,你需要一个解析器。

我的推荐是这样的:

找到文本文件中包含&#34;的所有单词:&#34;在它的最后。 (作为有趣数据的重要所谓标题)一旦你这样做,找到它右边的值减去任何空格,你有值存储。