Php remplacer donnee par une autre donnee

layeures Messages postés 310 Statut Membre -  
fred_bgt Messages postés 159 Statut Membre -
Bonjour,

j essaye de faire une page php qui permet de modifier une donnee qui ce trouve nimporte ou dans un fichier mes comment faire je ne sais pas

voila ce que j ai essayer de faire.

page1.php

<?php
$fpa = file_get_contents ("texte3.php");
$filename = "texte3.php";
$fp = fopen ($filename, "a+");
$var1 = "ligne";
$var2 = "21";
$aa = strpos($fpa, $var1.$var2);

while (strpos($fpa, $var1.$var2) == true ){
$var2++;
}
fwrite ($fp, "\n\n");
fwrite ($fp, "\$var10 = \"");
fwrite ($fp, $var1.$var2);
fwrite ($fp, "\" ");

?>

mes probleme il ne remplace pas une donnee par la nouvelle mes ne fait que ajoute la noucelle doneee

moi ce que je veu c est qui supprime la donnee selectionner est la remplace par la nouvelle

merci d'avance d votre aide
Configuration: Windows XP Internet Explorer 7.0

34 réponses

  • 1
  • 2
Résumé de la discussion

Il est question de modifier une donnée située dans un fichier texte à l'aide de PHP et de remplacer la valeur existante plutôt que de l'ajouter, afin d'éviter les duplications. Plusieurs approches ont été évoquées, notamment lire le contenu, localiser l'élément à remplacer, puis réécrire le fichier avec la nouvelle valeur, ou exploiter MySQL pour manipuler des données structurées. Des solutions techniques ont été proposées, comme utiliser preg_replace après lecture du contenu et sauvegarde, mais certaines erreurs sur les délimiteurs et l'utilisation des expressions régulières ont été signalées. En cas d'alternatives, les discussions évoquent aussi les limites des fichiers plats et recommandent d'envisager une base de données relationnelle pour la cohérence et les mises à jour centralisées.

Bobot (l'IA à votre service)
  1. fred_bgt Messages postés 159 Statut Membre 22
     
    les tables ont un nom que tu définis
    mais je ne comprends pas pourquoi tu veux que les tables aient une id ?

    Mais si tu veux des tables indexées, tu peux faire comme ceci :

    mysql_query("SELECT champs FROM table".$i." WHERE condition",$conn);
    avec table1, table2, table3 ...etc
    1
  2. fred_bgt Messages postés 159 Statut Membre 22
     
    je comprends
    mais ca ressemble a de la base de données tout ça ...
    pourquoi ne travailles-tu pas avec MySQL ?
    c'est un jeu d'enfants avec une BD
    0
  3. layeures Messages postés 310 Statut Membre 3
     
    je mis connai pas en mysql

    de l aide si vous plait
    0
  4. Utilisateur anonyme
     
    J'aurais plutôt fait quelque chose comme ça moi :

    <?php
    $file= 'fichier.php';
    
    $to_replace = '#motàremplacer#';
    $replace = 'motquiremplace';
    
    $content = file_get_contents($file);
    
    $content = preg_replace($to_replace, $replace, $content);
    
    file_put_contents($file, $content);
    ?>
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fred_bgt Messages postés 159 Statut Membre 22
     
    ca marche comme ça en effet.
    Il y a qq années, ne connaissant pas MySQL, j'avais développé ma BD avec les fichiers en PHP. Cela fonctionnait. Mais c'était très lourd (structure de la BD figée ou difficile à modifier).
    Avec MySQL c'est très simple. Il faut juste sauter le pas.

    Tout dépend de l'usage que tu auras de tes infos (petits fichiers ou pas, nombre de champs ...etc)
    En tout cas, les fichiers en PHP ne sont pas faits pour ça, ca sature vite le serveur s'ils sont trop gros ...

    C'est à toi de voir...
    0
  7. layeures Messages postés 310 Statut Membre 3
     
    bonjour

    dabord merci a tous de l interet que vous portait a mon probleme c est vraiment simpas

    d abord je vai terminer mon site comme prevue sans base de donne un foie terminer j irai apprendre le mysql est plus tard j utiliser le mysql sur mon site de referencement.
    0
  8. layeures Messages postés 310 Statut Membre 3
     
    bonjour je vien de tester ton code

    <?php
    $file= 'texte3.php';

    $to_replace = 'ligne1';
    $replace = 'motquiremplace';

    $content = file_get_contents($file);

    $content = preg_replace($to_replace, $replace, $content);

    file_put_contents($file, $content);
    ?>

    est ca mache un message d'erreur

    Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in C:\Program Files\EasyPHP3.1\www\test0500\remplacer donne\page1.php on line 9
    0
  9. Utilisateur anonyme
     
    il faut laisser les '#' pour la regex :
    $to_replace = '#ligne1#'; 
    
    0
  10. layeures Messages postés 310 Statut Membre 3
     
    c est quoi les regex
    0
  11. layeures Messages postés 310 Statut Membre 3
     
    bonjour

    j ai modifier le code est ca marche

    <?php
    $file= 'texte3.php';

    $to_replace = 'ligne1';
    $replace = 'motquiremplace';

    $content = file_get_contents($file);

    $content = str_replace ($to_replace, $replace, $content);

    file_put_contents($file, $content);
    ?>
    0
  12. Utilisateur anonyme
     
    Une expression rationnelle ou expression régulière est en informatique une chaîne de caractères que l’on appelle parfois un motif et qui décrit un ensemble de chaînes de caractères possibles selon une syntaxe précise

    (Wikipédia)

    9a permet de faire des recherches précises dans un document par exemple (rechercher tous les liens, toutes les email, un mot précis, ...)
    0
  13. layeures Messages postés 310 Statut Membre 3
     
    bonjour

    dans mon site web j utilise beaucoup les tableaux a 2 dimmensions
    exemple ( $table[5][1] )

    je voudrai savoir si dans mysql ont peu faire la meme chose si ou comment

    Merci de votre aide
    0
  14. fred_bgt Messages postés 159 Statut Membre 22
     
    on peut tout faire avec MySQL
    tu peux avoir MySQL chez ton hébergeur ?
    0
  15. layeures Messages postés 310 Statut Membre 3
     
    je voudrai savoir si une bDD contient un ID si une Table contient Un ID est si une entree contient un id

    merci de votre reponse
    0
  16. fred_bgt Messages postés 159 Statut Membre 22
     
    je ne comprends pas ta question
    qu'entends-tu par une ID ?
    une table est définit par une série de champs de données
    0
  17. layeures Messages postés 310 Statut Membre 3
     
    par exemple dans les table array de php
    y a $table[ID1]

    id ou si tu prefere une cle
    0
  18. fred_bgt Messages postés 159 Statut Membre 22
     
    évidemment que tu as des clés dans les BD. C'est la base des BD ...
    l'outil MySQL est très puissant
    ex :
    tu veux l'article n°5672 parmi les 50000 articles de ta table CLIENT
    le champ ID est la clé
    tu veux les champs nom, prenom et adresse

    en PHP :
    $r=mysql_qeury("SELECT nom,prenom,adresse FROM client WHERE id=5672",$conn);
    $nom=mysql_result($r,0,'nom');
    ...etc

    très simple d'emploi
    0
  19. layeures Messages postés 310 Statut Membre 3
     
    si j ai bien compris chaque entree a un ID
    mes pas les table
    0
  20. layeures Messages postés 310 Statut Membre 3
     
    si je pose toutes c est question qui peu te paraitre bizarre c est que dans mon site j utilise des tableau a deux dimmensions est jutilise les cle des tableau

    j ai un code comme ceci
    for ($i=0;$i<10;$i++){
    echo $table1[$id1][$id2];
    }
    etc etc...

    donc voila je cherche un moyen de adabtait ce code avec mysql
    0
  • 1
  • 2