array_spliceでの置き換えについて
リファラでカウントカウントを図りたいと考えています。
内容としては、http://www.hoge.net/からのアクセスに対して
『hoge』だけと抽出し、格納しているCSVと照合し正ならカウント+1として「array_splice」で置き換えてる
単純なプログラムなのですが書き込まれるCSVに何故か空の行が下記のように挿入されてしまいます。
CSVの中身
---------------------------------------------
0,http://www.sample.net
0,http://www.hoge.net
0,http://www.test.net
0,http://www.xxxx.net
↓↓↓↓↓↓↓↓↓↓↓
0,http://www.sample.net
1,http://www.hoge.net
[空白]
0,http://www.test.net
0,http://www.xxxx.net
---------------------------------------------
また、アクセスする度に空白行が増えていく状況です。
別のプログラムでも「array_splice」は使っていますが
いずれも正常に置き換えられています。
ソースを記述しますので何が原因なのかわかりません。
何方かアドバイスを頂ければと思います。
ソース
---------------------------------------------
$string = $_SERVER['HTTP_REFERER'];
$regex = "(http:\/\/)([^\/]+)(\/.*$)?";
match ( $string, $regex );
function match ( $string, $regex ) {
if ( preg_match ( "/".$regex."/i", $string, $match ) ) {
$keyURL=$match[2];
$Data=file("../csv/sample.csv");
for($i=0;$i<sizeof($Data);$i++){
$line=explode(",",$Data[$i]);
if(ereg("$keyURL",$line[1])){
$count="$line[0]" + 1;
$lines=array($count,$line[1]);
$lines=implode(",",$lines);
$lines=$lines."\n";
array_splice($Data,$i,1,$lines);
$fp=fopen("../csv/sample.csv","w+");
flock($fp, LOCK_EX);
foreach($Data as $item)fputs($fp,$item);
fclose($fp);
}
}
}
}
---------------------------------------------
宜しくお願い致します。
お礼
ありがとうございました! なるほど~~~!