Tunca Hocam Selamlar,
Sizin verdiğinizi kendimce biraz eğip büküp şöyle yaptım.
Amacım şu $log=" içerisindeki sayıların adedini çoktan az'a doğru
sıralatmak;
Yani $log değişkeni içerisinde 23 den 50 adet varsa, 44 den 96 tane
varsa .... gibi
bunların çıktısını
[44] ->96
[23] ->50
[60]->27
[01]->12
....
gibi
ama yazdığım kod biraz arızalı.
( bir yandan sunucular ile boğuşup bir yandan kodlara bakınca zor oluyor.)
Yazdığım kod dan gözden kaçan neresi var anlamadım.
Kolaylıklar Levent "SARI"
<?php
$log="23 44 19 27 46 39 32 05 51 26 53 12 21 03 17 07 46 30 32 48 51 06
35 16 35 12 52 48 07 14 46 29 40 32 31 26 34 21 51 14 47 22 23 38 21 09
41 31 34 30 33 11 29 51 51 10 43 46 14 20 52 51 44 02 42 05";
$arr=explode(" ",$log);
for($i=0; $i<count($arr); $i++)
$array[$arr[$i]]++;
sort($array);
echo '<pre>';
print_r($array);
?>
Çıktı:
Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 1
[4] => 1
[5] => 1
[6] => 1
[7] => 1
[8] => 1
[9] => 1
[10] => 1
[11] => 1
[12] => 1
[13] => 1
[14] => 1
[15] => 1
[16] => 1
[17] => 1
[18] => 1
[19] => 1
[20] => 1
[21] => 2
[22] => 2
[23] => 2
[24] => 2
[25] => 2
[26] => 2
[27] => 2
[28] => 2
[29] => 2
[30] => 2
[31] => 2
[32] => 2
[33] => 2
[34] => 3
[35] => 3
[36] => 3
[37] => 4
[38] => 6
)
29-08-2013 22:32 tarihinde, Tuncay BAŞ yazdı:
Şöyle birşey işinizi görürmü
PHP ile
$log="23 44 19 27 46 39 32 05 51 26 53 12 21 03 17 07 46 30 32 48 51
06 35 16 35 12 52 48 07 14 46 29 40 32 31 26 34 21 51 14 47 22 23 38
21 09 41 31 34 30 33 11 29 51 51 10 43 46 14 20 52 51 44 02 42 05";
$arr=explode(" ",$log);
print_r(array_count_values($arr));
çıktı :
Array
(
[23] => 2
[44] => 2
[19] => 1
[27] => 1
[46] => 4
[39] => 1
[32] => 3
[05] => 2
[51] => 6
[26] => 2
[53] => 1
[12] => 2
[21] => 3
[03] => 1
[17] => 1
[07] => 2
[30] => 2
[48] => 2
[06] => 1
[35] => 2
[16] => 1
[52] => 2
[14] => 3
[29] => 2
[40] => 1
[31] => 2
[34] => 2
[47] => 1
[22] => 1
[38] => 1
[09] => 1
[41] => 1
[33] => 1
[11] => 1
[10] => 1
[43] => 1
[20] => 1
[02] => 1
[42] => 1
)
*From:*[email protected]
[mailto:[email protected]] *On Behalf Of
*Levent SARI
*Sent:* Thursday, August 29, 2013 9:03 PM
*To:* Özgür yazılımlarla çeşitli dillerde yazılım geliştirme
*Subject:* [Linux-programlama] txt Dosyasi icerisindeki sayilarin
adedini almak!
Arkadaşlar ofisde kullandığımız yazılımlardan bir tanesi aşağıdaki
gibi bir log çıktısı veriyor.
Log dosyasında 1 ile 34 arasında her bir hata/ işlem için bir sayı
numarası basılmakta.
örnk: 4 --> yetkisiz erişim vb.
Bende bir script ya da uygulama ile bu log dosyasında ki hata
kodlarını sayısını almak istiyorum.
Yazacağım uygulama log dosyasını okuyup içerisinde kaç numaralı hata
kodundan kaç adet basıldığını bana ayrı bir çıktı olarak vermeli.
Örnk: 34 -> 20 adet
12 -> 12 adet gibi.
Bir kaç şey konuştuk arkadaşlar ile ama pek çıkamadık işin içinden.
Keza benim aklıma gelen ve ilk etapda yapmasını istediğim şey
yazılabilecek bir metod log dosyasının yolunu vermek ve bu log.txt yi
okutup sonucu çıktı olarak başka bri txt dosyasına verdirmek.
Konu hakkında önerileriniz nedir?
Benimle de paylaşa bilrseniz çok memnun olurum.
Kolaylıklar Levent "SARI"
###########################################
Log.txt dosyasının içeriği
23 44 19 27 46 39 32 05 51 26 53 12 21 03 17 07 46 30 32 48 51 06 35
16 35 12 52 48 07 14 46 29 40 32 31 26 34 21 51 14 47 22 23 38 21 09
41 31 34 30 33 11 29 51 51 10 43 46 14 20 52 51 44 02 42 05
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php