'725654', // Klinikum Lüneburg 'to' => '8002517', // Hamburg-Rahlstedt 'via' => ['8000236', '8002549'], // Über Lüneburg Bhf & Hamburg Hbf 'departure' => $departureTime, // ISO 8601 Format 'results' => 1, // Nur die beste Verbindung 'startWithWalking' => $startWalking ? 'true' : 'false' ]; // Query-String bauen (manuelle Handhabung von via[] für die API) $queryString = http_build_query($params); $queryString = preg_replace('/%5B(?:[0-9]|[1-9][0-9]+)%5D=/', '=', $queryString); $url = $baseUrl . "?" . $queryString; // API Abfrage $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'MeinPHPBot/1.0'); // Ein User-Agent ist höflich $response = curl_exec($ch); curl_close($ch); return json_decode($response, true); } // Heute Datum für die Beispiele generieren $today = date('Y-m-d'); // --- Szenario 1: 07:10 Uhr (Bus/Bahn) --- $morningTime = "{$today}T07:10:00"; $morningJourney = getPublicTransportRoute($morningTime, false); // --- Szenario 2: 22:00 Uhr (Start zu Fuß) --- $eveningTime = "{$today}T22:00:00"; $eveningJourney = getPublicTransportRoute($eveningTime, true); // Beispielhafte Ausgabe der ersten Verbindung echo "Route am Morgen (07:10):\n"; printJourney($morningJourney); echo "\nRoute am Abend (22:00, Start zu Fuß):\n"; printJourney($eveningJourney); function printJourney($data) { if (!isset($data['journeys'][0])) { echo "Keine Verbindung gefunden.\n"; return; } foreach ($data['journeys'][0]['legs'] as $leg) { $dep = date('H:i', strtotime($leg['departure'])); $arr = date('H:i', strtotime($leg['arrival'])); $line = $leg['line']['name'] ?? ($leg['walking'] ? 'Fußweg' : 'Umstieg'); echo "[$dep -> $arr] mit $line nach " . $leg['destination']['name'] . "\n"; } }