İlan Puanı: 60/100 Bilgisayar masası-kitaplık-gardırop-banyo dolabı-vitrin gümüşlük vs SEMT İSTANBUL DUDULLU
3
Fiyat GeçmişiGüncel: 3 TL
Son 1 fiyat hareketi
3 TL
| İlan No |
422 |
| İlan Tarihi |
28 Temmuz 2026 |
| Marka |
Özel Yapım |
| Durum |
İkinci El |
AI Karar Asistanı
Bu alan, ilanı benzerleri ve mevcut kriterleriyle birlikte yorumlayıp karar aşamasını hızlandırır.
AI analizini görmek için aşağıdaki butona tıklayın.
RESİMLERİN ÜSTLERİNDE YER ALAN NUMARALARA GÖRE AŞAĞIDA DETEYLAR VE FİYATLARI YAZMAKTADIR
detaylı resim isteyiniz atarım
47 kez görüntülendi.
*
* - Günlük ve toplam ziyaret sayar
* - 24 saat içinde aynı ziyaretçiyi tekrar saymaz (cookie)
* - Basit bot filtreleme (User-Agent kontrolü)
* - Güvenli dosya yazımı için flock() kullanır
*/
declare(strict_types=1);
// Sayaç verisinin tutulacağı dosya (web kullanıcısı yazabilir olmalı)
$dataFile = __DIR__ . '/counter-data.json';
// Basit bot filtresi (User-Agent)
$ua = $_SERVER['HTTP_USER_AGENT'] ?? '';
$isBot = (bool) preg_match('/bot|spider|crawl|slurp|fetch|crawler|mediapartners/i', $ua);
if ($isBot) {
// Botları sayma ama yine de mevcut sayıları gösterebiliriz.
echo renderCounter(readCounts($dataFile));
return;
}
// 24 saatlik tekil ziyaret için cookie
$cookieName = 'site_counter_seen';
$hasSeen = isset($_COOKIE[$cookieName]);
// Sayaç verisini oku/güncelle
$counts = readCounts($dataFile);
if (!$hasSeen) {
$counts = incrementCounts($dataFile, $counts);
// 24 saat boyunca tekrar sayma
setcookie($cookieName, '1', [
'expires' => time() + 86400,
'path' => '/',
'secure' => isset($_SERVER['HTTPS']),
'httponly' => true,
'samesite' => 'Lax',
]);
}
// HTML çıktı (isterseniz stilini değiştirin)
echo renderCounter($counts);
/** ----------------- Yardımcı Fonksiyonlar ----------------- */
function readCounts(string $file): array {
if (!is_file($file)) {
// Varsayılan yapı
return [
'total' => 0,
'daily' => [
date('Y-m-d') => 0,
],
'updatedAt' => time(),
];
}
$json = @file_get_contents($file);
if ($json === false) {
return ['total' => 0, 'daily' => [date('Y-m-d') => 0], 'updatedAt' => time()];
}
$data = json_decode($json, true);
if (!is_array($data)) {
$data = ['total' => 0, 'daily' => [], 'updatedAt' => time()];
}
// Bugünün anahtarı yoksa ekle
$today = date('Y-m-d');
if (!isset($data['daily'][$today])) {
$data['daily'][$today] = 0;
}
return $data;
}
function incrementCounts(string $file, array $counts): array {
$today = date('Y-m-d');
// Dosyayı aç/kilitle
$dir = dirname($file);
if (!is_dir($dir)) {
@mkdir($dir, 0775, true);
}
$fp = @fopen($file, 'c+');
if (!$fp) {
// Yazamıyorsak bellekte artırıp gösterelim
$counts['total']++;
$counts['daily'][$today] = ($counts['daily'][$today] ?? 0) + 1;
$counts['updatedAt'] = time();
return $counts;
}
// Özel: başka bir süreç yazarken yarış olmasın diye kilit
if (flock($fp, LOCK_EX)) {
// Güncel içeriği tekrar oku (bu arada değişmiş olabilir)
$current = stream_get_contents($fp);
if ($current !== false && $current !== '') {
$data = json_decode($current, true);
if (is_array($data)) {
$counts = $data + $counts; // eksik anahtarları koru
if (!isset($counts['daily'][date('Y-m-d')])) {
$counts['daily'][date('Y-m-d')] = 0;
}
}
}
// Artır
$counts['total'] = (int)($counts['total'] ?? 0) + 1;
$counts['daily'][$today] = (int)($counts['daily'][$today] ?? 0) + 1;
$counts['updatedAt'] = time();
// Baştan yaz
ftruncate($fp, 0);
rewind($fp);
fwrite($fp, json_encode($counts, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
fflush($fp);
flock($fp, LOCK_UN);
}
fclose($fp);
return $counts;
}
function renderCounter(array $counts): string {
$today = date('Y-m-d');
$total = number_format((int)($counts['total'] ?? 0), 0, ',', '.');
$todayCount = number_format((int)($counts['daily'][$today] ?? 0), 0, ',', '.');
// Basit, erişilebilir bir küçük footer bloğu
return <<
Bugün: {$todayCount}
•
Toplam: {$total}
HTML;
}