\n"; continue; } $data[] = array_combine($headers, $row); } fclose($handle); } return $data; } // ── Load data ──────────────────────────────────────────────────── $providers = readCSV('data/providers.csv'); $categories = readCSV('data/categories.csv'); // ── Featured providers (max 6) ─────────────────────────────────── $featuredProviders = array_filter($providers, function($p) { return isset($p['is_featured']) && trim($p['is_featured']) === '1'; }); $featuredProviders = array_slice($featuredProviders, 0, 6); // ── Star rating helper ─────────────────────────────────────────── function showStars($rating) { $rating = floatval($rating ?: 0); $full = floor($rating); $half = ($rating - $full) >= 0.5; $empty = 5 - $full - ($half ? 1 : 0); $html = str_repeat('', $full); if ($half) $html .= ''; $html .= str_repeat('', $empty); return $html; } // ── Stats counts ───────────────────────────────────────────────── $providerCount = count($providers); $categoryCount = count($categories); ?>
Provider Login

Find Trusted Service Providers

Connect with professionals across service categories

Browse by Category

Find exactly what you need from our wide range of services

0): ?>

No categories loaded.
Check data/categories.csv exists, is readable, and has correct format.
(View page source for any "Skipped malformed row" comments)

Top Rated Providers

Highly recommended professionals with excellent reviews

( reviews)

Category:

No featured providers found.
Add is_featured,1 to some rows in providers.csv