PHP解析文件,替换不需要的项目出错


PHP Parse File, replacing not required items going wrong

我试图从以下文件解析每个IP行(从web加载),我要将值存储在数据库中,所以我希望将它们放入数组。

它加载的文件有以下来源:

12174 in store for taking<hr>221.223.89.99:8909
<br>123.116.123.71:8909
<br>221.10.162.40:8909
<br>222.135.5.38:8909
<br>120.87.121.122:8909
<br>118.77.254.242:8909
<br>218.6.19.14:8909
<br>113.64.124.85:8909
<br>123.118.243.239:8909
<br>124.205.154.181:8909
<br>124.117.13.116:8909
<br>183.7.223.212:8909
<br>112.239.205.245:8909
<br>118.116.235.156:8909
<br>27.16.28.174:8909
<br>222.221.142.59:8909
<br>114.86.40.251:8909
<br>111.225.105.142:8909
<br>115.56.86.62:8909
<br>59.51.108.142:8909
<br>222.219.39.194:8909
<br>114.244.252.246:8909
<br>202.194.148.41:8909
<br>113.94.174.239:8909
<br><hr>total£º 24¡£

所以我想我正在寻找<hr>之间的所有东西,并逐行添加每一行。

然而,执行以下操作似乎不起作用(就剥离它不想要的部分而言)

<?php
$fileurl = "**MASKED**";
$lines = file($fileurl);
foreach ($lines as $line_num => $line) {
    $line2 = strstr($line, 'taking', 'true');
    $line3 = str_replace($line2, '', $line);
    print_r($line3);
}
?>

如果你想在数组中添加值,为什么不直接在循环中做呢?我会这样做:

$output = array();
foreach ($lines as $line) {
    if(preg_match("/<br>'d/", $line)) {
        $output[] = substr($line, 4);
    }
}
print_r($output);

查看PHP函数explode: http://www.php.net/manual/en/function.explode.php

它可以接受一个字符串,并通过在一个特定的字符处拆分来创建一个数组。在您的情况下,这可能是<br>

trim函数也可以在需要的时候去掉空格