IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lire un fichier, rechercher toutes les chaines de carac.


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 20
    Points
    20
    Par défaut Lire un fichier, rechercher toutes les chaines de carac.
    bonjour,
    j'ai trouvé des infos sur le net pour rechercher une chaine dans un fichier et dire si on l'a trouvé ou pas par exemple...
    mais moi j'aimerais scanner un fichier en entier, afficher toutes les occurences de chaque chaine de caractère trouvée à telle ou telle ligne !
    et ensuite en ayant la ligne, je propose de supprimer telle occurence à telle ligne...
    beaucoup d'ambition, mais peu de savoir en moi ^^
    si vous pouvez m'aider ça serait super cool !!

    donc en récapitulant, j'ai un $string , je cherche ds un fichier si il y est, et j'affiche par exemple :
    ligne 2 : $string Suppr ? (lien où jappelle une fonction ki suppr($ligne,$string))
    ligne 45 : $string Suppr ?

    merci beaucoup de votre aide !


    Edit :
    en fait j'utilisais :
    $old_content = file_get_contents($f);
    pour lire tout le fichier dans une variable string. mais je me perds, il faudrait une fonction qui lit ligne par ligne en fait je pense pour pouvoir avoir le numéro de celle-ci où supprimer l'occurence de la chaine voulue, et pas les autres... à moins qu'il y ait plus simple !...

  2. #2
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Déjà si tu veux faire du ligne par ligne passes par file() au lieu de file_get_contents(), puis tu boucle sur le résultat avec foreach().

    C'est une méthode comme une autre, pour le reste j'ai moyen compris, mais il va falloir faire des regex je pense.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    ok, mais t'aurais pas genre une url avec des trucs bien expliqués sur ça ? j'ai trop du mal. j'ai pas été très clair peuetre. en fait, en gros faut que je scanne des fichiers dans un dossier et que je regarde si ya une chaine précise (postée dans un formulaire basique en html) puis si elle est dans un fichier , je propose ou non de la supprimer.
    genre si l'utilisateur veut supprimer toutes les occurences de " <span style=truc> "
    je récapitule a l'affichage du résultat toutes les occurences, et si il clique sur le lien "suprimer" que je mettrai a côté, ça la supprime (pour cela je pense donc qu'il faut le numéro de la ligne où se trouve cette occurence)... lol
    je trouve ça super dur ! ^^

    si quelqu'un trouve ça facile... lol vous gênez pas !
    je peux vous copier le code (assez long donc je le met pas pour l'instant) si ça peut aider... mais il sert juste a faire un scan sur les dossiers et sous dossiers (en récursif ) d'un chemin d'accès donné. et il passe tous les fichiers un par un pour supprimer toutes les occurences de la chaine de caractères saisie dans le formulaire.
    il me permet donc pas dafficher avant, et demander si on suppr ou pas. il le fait direct pour toutes
    ...

  4. #4
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    file() -> http://fr3.php.net/manual/fr/function.file.php

    Puis foreach() -> http://fr3.php.net/manual/fr/control-structures.foreach.php

    Ensuite avec un simple str_replace() -> http://fr3.php.net/manual/fr/function.str-replace.php

    Mais je me demande pourquoi tu aurais besoin de le faire ligne par ligne, avec ceci :

    <?php

    &#160;&#160;&#160;&#160;$str_file&#160;
    =&#160;file_get_contents&#160;(&#160;'test.txt'&#160;)&#160;;

    &#160;&#160;&#160;&#160;
    $delete_var&#160;=&#160;'toto'&#160;;

    &#160;&#160;&#160;&#160;
    $new_file&#160;=&#160;str_replace&#160;(&#160;$delete_var&#160;,&#160;''&#160;,&#160;$str_file&#160;)&#160;;

    ?>

    Phpsyntaxcolor powered by decabodi
    Tu dois déjà t'en sortir, il te reste à remplacer le contenu du fichier par la nouvelle chaine avec fopen() par exemple.

    C'est à tester bien entendu.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    oui c'est ce que j'ai fait ça.
    mais justement je veux lister les occurences sans les supprimer !
    et ensuite proposer à l'utilisateur de les supprimer ou pas. (j'affiche les résultats listés a l'écran)
    donc si l'utilisateur choisit d'en supprimer qu'une, il faut savoir laquelle ! d'où l'importance (je pense) de récupérer le numéro de la ligne où l'occurence est placée dans le fichier scanné...
    pour moi c'est clair, mais j'ai pas les connaissances pour le metre en forme... :s

  6. #6
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Voici un petit exemple qui remplace les mots d'une chaine
    en les entourant d'un lien numéroté par occurences

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?
    	$fichier = "sdh jkashd kaj abc dhsjahd kja\nsajdhksjahdj abc ashdjas jdhakjs \n sajdhsjahkabcsahdakshdj\nasdsadas";
    	$mot = 'abc';
    	$liens = str_replace($mot, '<'.'? echo "<a href=\'?delete=$i\'>'.$mot.'</a>"; $i++; ?'.'>', $fichier);
    	$i=0;
    	echo "<pre>";
    	eval ('?'.'>'.$liens.'<'.'?');
    	echo "</pre>";
    ?>

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Si tu souhaites parcourir un fichier ligne par ligne, voici ce que tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $file = file_get_contents('test.txt');
    $lines = split("\n", $file);
    Ensuite, tu peux par exemple utiliser array_walk() avec une fonction que tu définis. Ou bien un simple foreach($lines as $i => $line) qui te permet de récupérer à la fois une ligne et son numéro.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    Code:
    <?
    $fichier = "sdh jkashd kaj abc dhsjahd kja\nsajdhksjahdj abc ashdjas jdhakjs \n sajdhsjahkabcsahdakshdj\nasdsadas";
    $mot = 'abc';
    $liens = str_replace($mot, '<'.'? echo "<a href=\'?delete=$i\'>'.$mot.'</a>"; $i++; ?'.'>', $fichier);
    $i=0;
    echo "<pre>";
    eval ('?'.'>'.$liens.'<'.'?');
    echo "</pre>";
    ?>
    j'ai testé ça, ça supprime l'occurence cherchée, ici $mot.
    mais sans faire le lien ! je comprend pas trop pourquoi !
    il dois y avoir un problème ici :
    '<'.'? echo "<a href=\'?delete=$i\'>'.$mot.'</a>"; $i++; ?'.'>'

    je ne vois pas l'erreur !
    merci pour votre aide en tout cas !!!

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    J'avoue ne pas comprendre pourquoi tu fais echo en plein milieu des paramètres d'une fonction :/
    Je pense que tu voulais faire quelque chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $liens = str_replace($mot, '<a href="'.basename(__FILE__).'?delete='.$i.'">'.$mot.'</a>", $fichier);

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    voilà nikel ça fait le lien !!
    maintenant à l'affichage on voit l'occurence soulignée en tant que lien. et j'aimerai pouvoir la supprimer en cliquant sur ce lien... apparement là ça ne fonctionne pas...

  11. #11
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Tu dois récupérer le paramètre "delete" en GET.
    Au passage, je pense que tu devrais plutôt écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $liens = str_replace($mot, '<a href="'.basename(__FILE__).'?delete='.urlencode($mot).'">'.$mot.'</a>", $fichier);
    (pas de $i)

    Pour récupérer et supprimer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!empty($_GET['delete'])){
       $file = str_replace(urldecode($_GET['delete']), '', $file);
    }

  12. #12
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Mon idée est que tu crée qqch comme ça en haut de page:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if($n = $_REQUEST['delete']) {
      // lecture du fichier
      // suppression du $nième mot
      // ecriture du fichier
    }
    // ici tu remet le code de mon exemple
    Ainsi chaque fois que tu clic sur un mot, ça le supprime du fichier puis
    ça te réaffiche le nouveau fichier avec des liens sur les mots restants

  13. #13
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Citation Envoyé par Kirkis
    J'avoue ne pas comprendre pourquoi tu fais echo en plein milieu des paramètres d'une fonction :/
    Je pense que tu voulais faire quelque chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $liens = str_replace($mot, '<a href="'.basename(__FILE__).'?delete='.$i.'">'.$mot.'</a>", $fichier);
    Oui, ce que tu as écrit est plus simple, mais si j'ai du faire un eval avec
    des echo, c'est pour pouvoir incrémenter la valeur de $i. Car dans ton
    cas tu crées des liens identiques, comment fera-tu pour savoir quel mot
    supprimer ?

  14. #14
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    En effet, c'était une légère erreur de ma part. D'ailleurs, si tu lis attentivement mon post précédent, j'ai corrigé.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    je suis en train de me prendre la tete sur ce bout de code là ^^ !!!
    je vais vous copier mon code je pense pour que vous ayez un apperçu. ça va prendre de la place mais bon...
    ce code marche, il permets grace au formulaire, de scanner d fichiers présents dans des dossiers et sous dossiers. et de remplacer toutes les chaines de caractère données, par ce qu'on veut.
    je voulais juste les afficher toutes, et dire que telle ou telle chaine trouvée, est dans tel fichier, a telle ligne, et faire un lien : "voulez vous la supprimer ???"

    ... voilà ! apparement vous avez l'air d'avoir les bons outils au niveau du code, mais je galère pour bien les utiliser ! je débute en php ...

    je vous remercie beaucoup de m'aider !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
     
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <title>Formulaire de recherche</title>
    </head>
    <body bgcolor="#DDDDDD">
    <table bgcolor="white" style="border-collapse:collapse;" width="375" align="center">
        <tr>
            <td width="350" style="border-width:1; border-color:black; border-style:dashed;" height="179">
                <br>
                <p align="center"><font face="Verdana"><span style="font-size:10pt;">&nbsp;<u>Formulaire de recherche :</u><br>&nbsp;</span></font></p>
     
    			<form action="index.php" name="search" method="POST">
                <table cellspacing="0" style="border-collapse:collapse;">
                    <tr>
                            <td width="165" style="border-width:1; border-top-color:rgb(153,153,153); border-right-color:black; border-bottom-color:black; border-left-color:rgb(153,153,153); border-style:none;">
                                <p align="right"><font face="Verdana"><span style="font-size:8pt;">Chemin d'accès :</span></font></p>
                            </td>
                        <td width="165" style="border-width:1; border-top-color:rgb(153,153,153); border-right-color:rgb(153,153,153); border-bottom-color:black; border-left-color:black; border-style:none;">                            <p><font face="Verdana"><span style="font-size:8pt;"><input type="text" name="path" value="C:/wamp/www/script_replace" size="35"></span></font></p>
                        </td>
                    </tr>
                    <tr>
                            <td width="165" style="border-width:1; border-top-color:black; border-right-color:black; border-bottom-color:black; border-left-color:rgb(153,153,153); border-style:none;">
                                <p align="right"><font face="Verdana"><span style="font-size:8pt;">Trouver :</span></font></p>
                            </td>
                        <td width="165" style="border-width:1; border-top-color:black; border-right-color:rgb(153,153,153); border-bottom-color:black; border-left-color:black; border-style:none;">                            <p><font face="Verdana"><span style="font-size:8pt;"><input type="text" name="find" size="25"></span></font></p>
                        </td>
                    </tr>
                    <tr>
                            <td width="165" style="border-width:1; border-top-color:black; border-right-color:black; border-bottom-color:rgb(153,153,153); border-left-color:rgb(153,153,153); border-style:none;">
                                <p align="right"><font face="Verdana"><span style="font-size:8pt;">Remplacer :</span></font></p>
                            </td>
                        <td width="165" style="border-width:1; border-top-color:black; border-right-color:rgb(153,153,153); border-bottom-color:rgb(153,153,153); border-left-color:black; border-style:none;">                            <p><font face="Verdana"><span style="font-size:8pt;"><input type="text" name="replace"></span></font></p>
                        </td>
                    </tr>
     
                </table>
                <p align="center">&nbsp;<a href="javascript:window.document.search.submit()">Envoyer</a> </p>
                </form>
     
     
     
    <?php
     
    if(isset($_POST['find']) & isset($_POST['replace']))
    {
      if(!isset($_POST['find']) || (isset($_POST['find']) && $_POST['find']=="")) //si le champs de texte comprenant la chaine à rechercher n'est pas rempli faire : 
      {
        echo'<script language="javascript">';
        echo'alert("Chaîne à rechercher inconnue!");';
        echo'javascript:history.back(1);';
        echo'</script>';
      }
    // Répertoire racine du scan (au format UNIX même sous Windows)
    $root_dir = $_POST['path'];
    // Extensions des fichiers concernés par le remplacement
    $ext = array('php', 'php3', 'inc');
    // Chaine à chercher récupérée du formulaire
    $find = $_POST['find'];
    // Chaine à remplacer récupérée aussi du formulaire
    $replace = $_POST['replace'];
    ############################################################################################
    //Fonction qui scanne un répertoire et ses sous-répertoires et modifie les fichiers concernés
    //si la chaîne est trouvée :
    function scan_dir($path, $find, $replace) {
        global $change, $ext;
     
    	if(!$test=opendir($path)) // si le nouveau chemin d'accès saisi par l'utilisateur est mal spécifié : erreur
    	{
        echo'<script language="javascript">';
        echo'alert("Chemin d\'accès inconnu !");';
        echo'javascript:history.back(1);';
        echo'</script>';
    	}
     
        if(false !== $dp = opendir($path)) //retourne un pointeur sur un dossier pour être utilisé avec les fonctions closedir, readdir  et rewinddir.
    	{
            clearstatcache(); //Efface le cache de stat
            while($file = readdir($dp)) //retourne le nom du fichier suivant dans le dossier identifié par dir_handle 
    		{ 
                $f = $path . '/' . $file; //chemin d'accès + nom du fichier courant.
     
                if($file != '.' and $file != '..' and $f != $_SERVER['SCRIPT_FILENAME']) // SCRIPT_FILENAME : Le chemin absolu vers le fichier contenant le script en cours d'exécution
    			{
                    if(is_dir($f)) //Indique si le fichier $f est un dossier
    				{
                        scan_dir($f, $find, $replace); // rappel récursif si on a un nouveau dossier
                    } else {
                        $info_file = pathinfo($f); //retourne un tableau associatif, contenant les informations sur le chemin path  . Les éléments suivants sont retournés : dirname  , basename  et extension 
                        foreach($ext as $extension) {
                            if(isset($info_file['extension']) and 0 === strcmp($extension, $info_file['extension'])) //strcmp ret 0 si c'est égal
    						{
                                $old_content = file_get_contents($f); //Lit tout un fichier dans une chaîne
     
                                $new_content = str_replace($find, $replace, $old_content); // Remplace toutes les occurrences dans une chaîne
     
                                if(strcmp($old_content, $new_content)) //si le fichier texte a changé
    							{
                                    $change = true;	
                                    if(false !== ($fp = fopen($f, 'w')))  // remplacement des données avec le new_content.
    								{
                                        fwrite($fp, $new_content);
                                        fclose($fp);
                                    }
                                    echo '<li>' . $f . '</li>';
    							}
                                break;
                            }
                        }
                    }
                }
            }
            closedir($dp);
        }
        return;
    }
     
    //Présentation des résultats
    echo '<br><br><p align="center"><font face="Verdana"><span style="font-size:10pt;"><u>Résultats du traitement : </u></span></p>';
    echo "<span style=\"font-size:8pt;\">&nbsp Chaine recherchée : ".$_POST['find']."<br>";
    echo "&nbsp Remplacer par : ".$_POST['replace']."<br><br>";
    echo "<b>&nbsp Liste des fichiers modifiés : </b><br> </span></font>";
    echo '<h5><ul>';
     
    //On scan le répertoire et ses sous-répertoires
    $change = false;
    scan_dir($root_dir, $find, $replace);
     
    if(!$change) {
         echo '<li>Aucun fichier mis à jour !</li>';
    }
    echo '</ul></h5>';
     
    }
    ?> 
     
    <p>&nbsp;</p></td></tr></table><p>&nbsp;</p>
    </body>
    </html>

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    oh là ça fait peutetre un peu trop de code !!!

  17. #17
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Avant d'aller plus loin, je veux m'assurer que j'ai bien tout compris :-)

    Actuellement, tu a un outil de rechercher/remplacer qui remplace le mot A
    par le mot B dans tous les fichiers (dont l'extensions fait partie d'une liste
    d'extensions autorisées) et ceci récursivement dans les sous-dossier d'un
    dossier racine de départ.

    Tu aimerais modifier ton code pour que chaque remplacement de A par B
    soit effectué que si il est validé par un utilisateur, par un clic.

    Merci de me dire si c'est bien ça que tu cherches à faire, et merci de
    donner qq indications quant au contexte, à savoir, quels type de fichiers,
    quelle quantité de fichiers, et une petite description de ton besoin dans
    la pratique. Ceci nous aidera à te proposer des solutions qui ne sont pas
    trop hors contexte :-)

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    merci beaucoup de ton aide !
    en fait c'est exactement ça !
    mon code sert a remplacer telle occurence par une autre. si tu copies cole le code dans un *.php tu verras le formulaire, et tu peux le tester en mettant des fichiers .php remplis de phrases quelconques pour tester.
    dans le code que j'ai copié, j'ai enlever le bout de code qui permet de tenir un fichier de logs à jour pour savoir quel jour telle occurence a été remplacée par telle autre. et aussi une ancienne fonction qui servait à créer un fichier .bak mais bon ça c'est pas grave
    le principal , donc comme tu l'a compris, (ou comme vous l'avez compris :p) c'est que je cherche à demander à l'utilisateur de remplacer lui-même la chaine de caractère trouvée.
    ce qui implique de repérer la chaine dans le fichier, l'afficher avec la ligne et dans quel fichier elle a été trouvée (à la limite quel dossier aussi mais bon on colle le chemin d'accès) et puis quand la cherche est terminée on a a l'écran toutes les occurences trovées avec la possibilité de cliquer sur un lien qui effectue le changement !
    si on veut remplacer la chaine par " " , ça la supprime.

    voilà ! pas simple tout ça !!
    merci

  19. #19
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Peux-tu encore juste réponde à la deuxième partie de mon post précédent
    contexte ? nb de fichiers ?

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 20
    Points
    20
    Par défaut
    les types de fichiers sont donnés à titre indicatif, je pense que des fichiers PHP seront les seuls à etre scannés. (il faut tenir compte des </html> ou des <span....> par exemple que l'on peut remplacer)
    ce script sera cencé aider pour le développement d'un gros site internet. pour faire des scann de fichiers pour voir par exemple quel fichier utilise quelle fonction. et remplacer le nom !
    le nombre de fichiers scannés.... je ne sais pas trop ! disons de 1 à quelques dizaines maxi.

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/05/2012, 14h27
  2. Lire un fichier texte toutes les 3 secondes
    Par sam14 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 28/03/2012, 16h36
  3. Réponses: 5
    Dernier message: 21/02/2007, 16h12
  4. Réponses: 4
    Dernier message: 25/07/2006, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo