Convertion d'un code php
Publié : jeu. 31/oct./2024 19:33
Salut les ptits gars, je tente de convertir un code php qui récupère les données Json d'un fichier sur un serveur sécurisé avec accès par identifiant et mot de passe. J'aimerais pouvoir convertir le code php en purebasic mais je n'y arrive pas, du moins en partie car j'arrive à me connecter au serveur puis à générer le bon lien car le fichier est horodaté, mais je n'arrive pas à le télécharger en local sous un autre nom pour ensuite l'exploiter dans mon projet.
Voici le code php:
Je ne peut pas vous donner l'url exacte du serveur et les identifiants par sécurité et pour tester malheureusement.
Voici la partie PB que j'ai réussi à faire pour le moment:
Merci d'avance pour votre aide.
Voici le code php:
Code : Tout sélectionner
<?php
ini_set('memory_limit', '512M');
// Configuration
$username = '';
$password = '';
$region = '1';
$strikes_dir = 'https://' . $username . ':' . $password . 'urldusite' . $region . '/';
$end_time = time();
$time_span = 3600; // 1 heure
$local_strikes_file = 'local.json';
// Renouvellement du fichier de données local si nécessaire
If (!file_exists($local_strikes_file) || filemtime($local_strikes_file) < $end_time - 60) {
touch($local_strikes_file);
$l_time = $end_time - $time_span;
$tmp_strikes = [];
$run_time = $l_time;
While ($run_time < $end_time + 600) {
$filename = $strikes_dir . gmdate("Y/m/d/H/", $run_time) . ($run_time / 600 % 6) . '0.json';
error_log("Tentative d'ouverture du fichier : $filename");
If ($file = @fopen($filename, 'r')) {
error_log("Fichier ouvert avec succès : $filename");
While ($line = fgets($file)) {
$json = json_decode($line);
If ($json && isset($json->time)) {
$json->time /= 1000000000;
If ($json->time >= $l_time) {
// Supprimer les signatures si nécessaire
If (isset($json->sig)) {
unset($json->sig);
}
$tmp_strikes[] = $json;
}
}
unset($json)
}
fclose($file);
} Else {
error_log("Échec de l'ouverture du fichier : $filename");
}
$run_time += 600;
}
// Écrire les données dans local.json
file_put_contents($local_strikes_file, json_encode($tmp_strikes, JSON_PRETTY_PRINT));
}
// Chargement des données
$strikes = [];
$data = file_get_contents($local_strikes_file);
If ($data !== false) {
$strikes = json_decode($data);
If ($strikes === null) {
error_log("Erreur lors du décodage JSON : " . json_last_error_msg());
$strikes = [];
}
} Else {
error_log("Erreur lors de la lecture du fichier local.json");
}
// Retourner les données au format JSON
header('Content-Type: application/json');
echo json_encode($strikes);
?>
Voici la partie PB que j'ai réussi à faire pour le moment:
Code : Tout sélectionner
; Définition des constantes et des variables
Define username.s = "" ; Remplacez par votre nom d'utilisateur
Define password.s = "" ; Remplacez par votre mot de passe
Define region.s = "1" ; Exemple de région
Define strikes_dir.s = "https://" + username + ":" + password + "URLduServeur" + region + "/"
Define end_time = Date()
Define time_span = 3600 ; 1 heure
Define local_strikes_file.s = "local.json"
Define l_time = end_time - time_span
Define run_time
; Boucle pour télécharger les fichiers JSON
run_time = l_time
If run_time < end_time + 600
; Vérifie que run_time n'est pas 0 avant d'effectuer la division
Define index = (run_time / 600) % 6 ; Utiliser un index basé sur run_time
Define filename.s = strikes_dir + FormatDate("%yyyy/%mm/%dd/%hh/", run_time) + Str(index) + "0.json"
EndIf
ReceiveHTTPFile(filename, "strikes.json")