Bonjour,
Le site d'un client utilise un script basé sur des tables non-Joomla! de la même base de données.
Le site a été copié pour migration en J5 sur mon propre serveur, celui du client ne disposant pas de PHP 8.1, et du coup les données visées (un annuaire) sont cherchées sur le serveur d'origine. Le site sera ensuite transféré sur un nouveau serveur, avec une nouvelle base de données.
Quatre fichiers débutent par la définition du serveur, de la base, du login et du mot de passe.
Mon but est de récupérer dans configuration.php les valeurs de ces paramètres.
Je sais récupérer les lignes correspondantes, mais il me faut transformer la partie "public $host = 'localhost';" en "$server ='localhost';" afin de fournir ensuite la bonne valeur de "$server" à la requête de connexion à la base.
En bref, je récupère "'localhost';" mais quand j'essaie un str_replace sur les guillemets ou le point-virgule, je ne récupère que du vide au lieu de "localhost" seul.
Pour obtenir la valeur seule, je suis obligé de supprimer 8 caractères (dont "'") au début et à la fin de cette chaîne.
N'y a-t-il pas une méthode plus élégante ?
Merci de vos conseils !
Le site d'un client utilise un script basé sur des tables non-Joomla! de la même base de données.
Le site a été copié pour migration en J5 sur mon propre serveur, celui du client ne disposant pas de PHP 8.1, et du coup les données visées (un annuaire) sont cherchées sur le serveur d'origine. Le site sera ensuite transféré sur un nouveau serveur, avec une nouvelle base de données.
Quatre fichiers débutent par la définition du serveur, de la base, du login et du mot de passe.
Mon but est de récupérer dans configuration.php les valeurs de ces paramètres.
Je sais récupérer les lignes correspondantes, mais il me faut transformer la partie "public $host = 'localhost';" en "$server ='localhost';" afin de fournir ensuite la bonne valeur de "$server" à la requête de connexion à la base.
En bref, je récupère "'localhost';" mais quand j'essaie un str_replace sur les guillemets ou le point-virgule, je ne récupère que du vide au lieu de "localhost" seul.
Pour obtenir la valeur seule, je suis obligé de supprimer 8 caractères (dont "'") au début et à la fin de cette chaîne.
Code:
$egalpos = strpos($line,'='); if (strpos($line,'$host =')) { $server = substr(htmlspecialchars($line),$egalpos + 8); $host =substr($server, 0,strlen($server) - 8); }
Merci de vos conseils !
Commentaire