| Server IP : 80.211.21.168 / Your IP : 216.73.217.33 Web Server : Apache System : Linux alex-webdesign.it 3.10.0-1160.119.1.el7.tuxcare.els22.x86_64 #1 SMP Mon Aug 18 06:07:12 UTC 2025 x86_64 User : admin_japan ( 10003) PHP Version : 8.2.32 Disable Function : opcache_get_status MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/vhosts/cerchijapan.it/ai4dealers.com/MRC/ |
Upload File : |
<?php
// Nome del file CSV di output
$outputFile = __DIR__ . '/dealers.csv';
// Apri il file in scrittura
if (!$fp = fopen($outputFile, 'w')) {
die("Errore: impossibile aprire $outputFile in scrittura\n");
}
// Intestazione CSV (pipe-delimited)
fputcsv($fp, ['CompanyName', 'Address', 'Città ', 'Provincia'], '|');
$baseUrl = 'https://www.autoscout24.it/dealer-search/api/';
$size = 200;
$pageIndex = 1;
// --- Prima chiamata per determinare il numero di pagine ---
$initialUrl = sprintf(
'%s?country=IT&companyName=&services=&makes=&pageIndex=%d&size=%d&sortBy=best',
$baseUrl,
$pageIndex,
$size
);
$ch = curl_init($initialUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if (curl_errno($ch)) {
die("cURL error: " . curl_error($ch) . "\n");
}
curl_close($ch);
$data = json_decode($response, true);
if (!isset($data['numberOfPages'])) {
die("Risposta API inattesa, manca 'numberOfPages'.\n");
}
$totalPages = (int) $data['numberOfPages'];
echo "Totale pagine da processare: $totalPages\n";
// --- Loop su tutte le pagine ---
for ($page = 1; $page <= $totalPages; $page++) {
$url = sprintf(
'%s?country=IT&companyName=&services=&makes=&pageIndex=%d&size=%d&sortBy=best',
$baseUrl,
$page,
$size
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$resp = curl_exec($ch);
if (curl_errno($ch)) {
echo "cURL error alla pagina $page: " . curl_error($ch) . "\n";
curl_close($ch);
continue;
}
curl_close($ch);
$pageData = json_decode($resp, true);
if (empty($pageData['results'])) {
echo "Nessun risultato alla pagina $page\n";
continue;
}
foreach ($pageData['results'] as $dealer) {
$companyName = $dealer['companyName'] ?? '';
// Split dell'indirizzo
$parts = array_map('trim', explode(' - ', $dealer['address'] ?? ''));
$address = $parts[0] ?? '';
$city = $parts[1] ?? '';
$province = '';
if (isset($parts[2])) {
// rimuovo eventuale ", IT" o simili
$provSplit = explode(',', $parts[2]);
$province = trim($provSplit[0]);
}
// Scrive la riga pipe-delimited
fputcsv($fp, [$companyName, $address, $city, $province], '|');
}
echo "Pagina $page di $totalPages elaborata.\n";
}
// Chiudi il file CSV
fclose($fp);
echo "Operazione completata. File creato: $outputFile\n";