我正在尝试解析包含不同类型配置(路由器配置)的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文件,但效率不高。
谢谢。
答案 0 :(得分:1)
在一天结束时,你需要一个解析器。
我的推荐是这样的:
找到文本文件中包含&#34;的所有单词:&#34;在它的最后。 (作为有趣数据的重要所谓标题)一旦你这样做,找到它右边的值减去任何空格,你有值存储。