各位大哥大姐們好,小弟我是大學新手想問問這個怎麼處理。
例如:我有一個log.txt檔
裡面資料是這樣
upload=> used[ 00:00:00:00:00:03 ]= 25704
upload=> used[ 00:00:00:00:00:03 ]= 63504
upload=> used[ 00:00:00:00:00:03 ]= 102816
我想比較後面數字的大小後再取出 最大或最小值這樣
稍微查了一下 preg_replace 能辦到嗎?
反正只要能取出最後的數字來比大小就行了
你知道什麼方法就用什麼方法
<pre class="c" name="code">
<?php
function parseFile($fd)
{
$min = $max = null;
$data = array('min' => null, 'max' => null);
while (false !== ($buf = fgets($fd))) {
$line = trim($buf);
$value = preg_replace('#.*=\s*(\d+)#', '$1', $line);
if (null === $value || $value === $line) {
// skip invalid record
continue;
}
if (null === $min || $min > $value) {
$min = $value;
$data['min'] = $line;
}
if (null === $max || $max < $value) {
$max = $value;
$data['max'] = $line;
}
}
return $data;
}
$fd = fopen("data.txt", 'r');
if (false === $fd) {
echo "fained to open data file\n";
exit(1);
}
var_dump(parseFile($fd));
你想用 regular expression,可以用 preg_match_all:
<pre class="c" name="code"><?php
$data = file_get_contents('test.txt');
preg_match_all('/\d+$/m', $data, $match);
sort($match[0], SORT_NUMERIC);
var_dump($match);
?>
排序完,陣列第一個就是最小,最後一個就是最大。