Afficher le nom de mes variables
pyn -
Bonjour.
Je prepare un interface d'adminixtration pour le gestionnaire d une web.
J'ai un fichier php qui contient mes variable.
J'autorise la modification de la valeur des variable et sauvegarde une copie de la variable initiale en ajoutant la date au nom de la variable.
Par exemple.
$titre = "mon titre"
Le egstionaire modife une variable et j'ai donc:
$titre_2026_01_14_20_12_10 = "mon titre"
$titre = "mon nouveau titre
$sous_titre_2026_01_14_20_12_10 = "mon sous titre"
$sous_titre = "mon nouveau sous titre"
Je veux recuperer le nom de la variable avec la date
Avec un formulaire je voudrais choisir la "categorie" ($titre ) de variable que je veux afficher afin de definir la date de la modiccation en recuperant le 2026_01_14_20_12_10
J ai essayer
$file = file_get_contents('texte.php', true);
print_r($file);
Mais cela me donne seulemet les valeurs des variables.
Comment puis-je obtenir la des variable suivant le choix formulaire.
Merci pour votre aide
- Afficher le nom de mes variables
- Changer le nom de son iphone - Guide
- Nom de compte steam exemple - Forum Jeux vidéo
- Trouver un nom avec une adresse ✓ - Forum Loisirs / Divertissements
- Annuaire portable gratuit a partir d'un nom ✓ - Forum Mobile
- Afficher toutes les lignes masquées excel ✓ - Forum Excel
4 réponses
Bonjour,
<?php
// articles.php
$articles = [
'2026-01-01' => [
'titre' => 'un super titre',
'sous-titre' => 'ceci est le premier sous-titre',
],
'2026-01-02' => [
'titre' => 'un autre titre',
'sous-titre' => 'ceci est le deuxième sous-titre',
],
];
<?php
include 'articles.php';
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Consultation article</title>
</head>
<body>
<form>
<select name="date">
<?php foreach (array_keys($articles) as $date) : ?>
<option value="<?= htmlspecialchars($date) ?>"><?= htmlspecialchars($date) ?></option>
<?php endforeach; ?>
</select>
<input type="submit">
</form>
<?php
if (isset($_GET['date'])) :
if (!is_string($_GET['date']) || !array_key_exists($_GET['date'], $articles)) :
?>
<p class="alert-error">Date invalide</p>
<?php else :
$article = $articles[$_GET['date']];
?>
<h1><?= htmlspecialchars($article['titre']) ?></h1>
<small><?= htmlspecialchars($article['sous-titre']) ?></small>
<?php
endif;
endif;
?>
</body>
</html>
Bonjour je sais que j'ai marqué en "résolu" mais je n'arrive pas a le remettre en actif.
La solution apportée est geniale, mais comment puis-je faire pour ajouter ou modifier ou supprimer une variable dans ce tableau dynamique.
Pour ajouter j'ai essayé avec puch_array() mais sans résultat. MA sintaxe doit être mauvaise. LA voici
$arr = array('articles');
array_push($arr, "debut");
pour supprimer
unset($articles['2026-01-01']);
merci pour votre soutien
Je pensais que l'administrateur allait modifier directement le fichier contenant les données à la main.
Si tu veux rendre modifiable le tableau des données via la page html, l'utilisation d'un tableau php pour le stockage des données n'est pas le mieux adapté.
L'idéal serait surement de te tourner vers l'utilisation d'une base données.
Sans base de données, tu peux utiliser un autre format tel que le json pour le stockage des données.
PHP propose les fonctions json_encode() et json_decode() pour convertir un tableau php en json et inversement.
Un exemple plus complet avec l'utilisation d'un fichier json.
Fichier articles.json :
{
"2026-01-01": {
"titre": "un super titre",
"sous-titre": "ceci est le premier sous-titre"
},
"2026-01-02": {
"titre": "un autre titre",
"sous-titre": "ceci est le deuxième sous-titre"
}
}
Fichier index.php :
<?php
$articles = json_decode(file_get_contents('./articles.json'), true);
if (isset($_POST['action']) && 'ajouter' === $_POST['action']) {
if (empty($_POST['date']) || empty($_POST['titre']) || empty($_POST['sous-titre'])) {
echo 'Données invalides';
} else {
$articles[$_POST['date']] = [];
$articles[$_POST['date']]['titre'] = $_POST['titre'];
$articles[$_POST['date']]['sous-titre'] = $_POST['sous-titre'];
file_put_contents('./articles.json', json_encode($articles, JSON_PRETTY_PRINT));
header('Location: '.$_SERVER['PHP_SELF']);
exit();
}
}
if (isset($_POST['action']) && 'supprimer' === $_POST['action']) {
if (!is_string($_POST['date']) || !array_key_exists($_POST['date'], $articles)) {
echo 'Date invalide';
} else {
unset($articles[$_POST['date']]);
file_put_contents('./articles.json', json_encode($articles, JSON_PRETTY_PRINT));
header('Location: '.$_SERVER['PHP_SELF']);
exit();
}
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Gestion article</title>
</head>
<body>
<h1>Gestion article</h1>
<form>
<h2>Consulter un article</h2>
<select name="date">
<?php foreach (array_keys($articles) as $date) : ?>
<option value="<?= htmlspecialchars($date) ?>"><?= htmlspecialchars($date) ?></option>
<?php endforeach; ?>
</select>
<input type="submit" value="Consulter">
</form>
<?php
if (isset($_GET['date'])) :
if (!is_string($_GET['date']) || !array_key_exists($_GET['date'], $articles)) :
?>
<p class="alert-error">Date invalide</p>
<?php else :
$article = $articles[$_GET['date']];
?>
<h1><?= htmlspecialchars($article['titre']) ?></h1>
<small><?= htmlspecialchars($article['sous-titre']) ?></small>
<hr>
<?php
endif;
endif;
?>
<form method="post">
<h2>Ajouter un article</h2>
<label>Date : <input type="text" name="date" placeholder="2026-01-03" required></label>
<label>Titre : <input type="text" name="titre" placeholder="un nouveau titre" required></label>
<label>Sous-titre : <input type="text" name="sous-titre" placeholder="un nouveau sous-titre" required></label>
<input type="submit" value="Ajouter">
<input type="hidden" name="action" value="ajouter">
</form>
<form method="post">
<h2>Supprimer un article</h2>
<select name="date">
<?php foreach (array_keys($articles) as $date) : ?>
<option value="<?= htmlspecialchars($date) ?>"><?= htmlspecialchars($date) ?></option>
<?php endforeach; ?>
</select>
<input type="submit" value="Supprimer" onclick="return confirm('Êtes-vous sûr de vouloir supprimer cet article ?')">
<input type="hidden" name="action" value="supprimer">
</form>
<pre>
Debug :
<?php
foreach ($articles as $date => $article) {
echo $date . "\n";
foreach ($article as $name => $value) {
echo $name . ' : ' . $value . "\n";
}
}
?>
</pre>
</body>
</html>
L'interface que tu veux développer ce nomme généralement CRUD qui est un accronyme pour les 4 opérations Create, Read, Update, Delete.
L'utilisation d'une base de données est souvent recommandée pour ce genre d'interface, tu peux trouver pleins de tutos sur le net pour réaliser une CRUD avec une bdd, un exemple parmis d'autres :
https://nouvelle-techno.fr/articles/live-coding-creer-un-crud-en-php
Edit : je te recommande l'utilisation d'un tableau associatif, le code ci-dessus est un exemple de ce que tu peux essayer de faire.