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 :

Écrire dans un fichier à une place précise


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Points : 48
    Points
    48
    Par défaut Écrire dans un fichier à une place précise
    bonjour,
    je voudrais écrire dans un fichier à une place précise
    Voici le fichier ou je veux écrire
    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
     
    <?php
     
    if($_SESSION['langue'] == null)
    { 
    	$langue="fr";
    	$_SESSION['langue']=$langue;
    }
     
    if($_GET['langue'] != null)
    {
    	if($_GET['langue']=="fr")
    	{
    		$langue="fr";
    		$_SESSION['langue']=$langue;
    	}
    	if($_GET['langue']=="en")
    	{
    		$langue="en";
    		$_SESSION['langue']=$langue;
    	}
    	//#
    }
     
    ?>
    en fait, je voudrais écrire là où il y a Comment faire?
    Merci

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Bon je l'ai jamais fait mais voici des idées :C'est peut etre une solution lourde, mais bon

    Tu as aussi la possibilité de faire avec ceci : Comment traiter un fichier ligne par ligne ?
    Et il te reste plus qu'à traiter le tableau

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Points : 48
    Points
    48
    Par défaut
    ok je vais voir.
    Comment fait on pour tester si un caractère dans un fichier est égal à un autre?
    Par exemple, je lis mon fichier, et dès que je tombe sur #, je remplace par ma nouvelle chaine.

    Merci

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Désolé j'ai oublié cette partie, voilà de quoi t'indiquer Comment savoir si une chaîne est incluse dans une autre ?

    Tu as aussi la solution strpos (dis te donne la position du caractère dans la chaine) ou tout simplement str_replace

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Points : 48
    Points
    48
    Par défaut
    J'ai essayé ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $ligne = file('langue.php');
    foreach ($ligne as $line_num => $line) 
    {
    	echo 'Ligne No <strong>' . $line_num . '</strong> : ' . $line . '<br />'."\n";
     
    }
    Je n'arrive pas a écrire la ligne qui me permet de trouver le caractère #

    Quelqu'un pourrait m'aider pour ça si il connait
    Merci

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Là tu fais que de l'affichage et non de la recherche...Utilises les derniers liens que je t'ai donné...La solution y est. Pour infos il faudra tester pour voir si ton # est dans la chaine et si il y est tu remplaces la ligne de ton tableau par la nouvelle. Pour faire comme ceci je pense qu'un for serait plus adapté à la situation

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Points : 48
    Points
    48
    Par défaut
    J'ai réussi à trouver le caractère #.
    Maintenant il faut que je remplace ce caractère par mon nouveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $ligne = file('langue.php');
    foreach ($ligne as $line_num => $line) 
    {
    	echo 'Ligne No <strong>' . $line_num . '</strong> : ' . $line . '<br />'."\n";
    	if(strpos($line, '#') == true)
    	{
    		str_replace('#', "test", $ligne );
    		echo "trouvé";
    	}
    }
    Le str_replace ne remplace pas ...
    Si tu vois pourquoi et quelles sont les modifs à apporter

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Regardes mon précédent post. le foreach n'est pas très adapté à ta situation je pense.Utilises une boucle for dans laquelle tu pourras grace à l'indice modifier le champ $i de ton tableau

    Ou si tu veux tu utilises ton $line_num pour remplacer dans ton tableau

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Points : 48
    Points
    48
    Par défaut
    Ok mais je ne vois pas la condition d'arret si je fais un for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $ligne = file('langue.php');
    for($i=0; $i<...; $i++)

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Points : 48
    Points
    48
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $ligne = file('langue.php');
     
    for($i=0; $i<count($ligne); $i++)
    {
    	if(strpos($ligne[$i], '#') == true)
    	{
    		echo "trouvé";
    		str_replace($ligne[$i], "test", $ligne);
    	}	
    	echo "ligne $i : " . $ligne[$i] . "<br>";
    }
    je trouve bien mon caractère mais le str_replace ne fait rien

  12. #12
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Vas-y directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ligne = file('langue.php');
     
    for($i=0; $i<count($ligne); $i++)
    {
    	if(strpos($ligne[$i], '#') == true)
    	{
    		echo "trouvé";
    		$ligne[$i] = "test";
    	}	
    	echo "ligne $i : " . $ligne[$i] . "<br>";
    }

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Points : 48
    Points
    48
    Par défaut
    Je pense que je suis arrivé à la fin de ma galère...
    Un grand merci pour ton aide.

    Bon dev

  14. #14
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Si ca fonctionne pour toi j'en suis ravi

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Points : 48
    Points
    48
    Par défaut
    Désolé mais je rencontre un petit soucis lors de l'écriture dans mon fichier.

    Voilà ce que j'écris:
    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
     
    if($_GET['langue'] != null)
    {
    	if($_GET['langue']=="fr")
    	{
    		$langue="fr";
    		$_SESSION['langue']=$langue;
    	}
    if($_GET['langue']=="en")
    {
    $langue="en";
    $_SESSION['langue']=$langue;
    }
    #
    }
    et voila ce que je voudrais:
    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
     
    if($_GET['langue'] != null)
    {
    	if($_GET['langue']=="fr")
    	{
    		$langue="fr";
    		$_SESSION['langue']=$langue;
    	}
    	if($_GET['langue']=="en")
    	{
    		$langue="en";
    		$_SESSION['langue']=$langue;
    	}
    	#
    }
    Comment puis je faire pour indenter le ligne que j'insère??

  16. #16
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Essayes avec ceci : Comment compléter une chaîne de caractères avec une autre chaîne ?

    Mais le problème est qu'il faut que tu comptes le nombre d'espace vide avant le premier caractère. Ou tu récupères le str_pos et tu ajoutes grace au lien donné plus le nombre obtenu grace à str_pos

    En gros tu récupères valeur obtenu dans ton test, afin de savoir où est le caractère recherché et là tu fais ton instruction qui permettra de rajouter des espaces. C'est une solution

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/11/2010, 21h05
  2. Écrire dans un fichier XML à une ligne précise
    Par ballantine's dans le forum Langage
    Réponses: 24
    Dernier message: 10/11/2009, 15h15
  3. Écrire dans un fichier à une certaine ligne
    Par shirya dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 19/09/2007, 15h43
  4. Serializer une ArrayList ou écrire dans un fichier texte?
    Par yvon_huynh dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/07/2006, 19h49
  5. Réponses: 3
    Dernier message: 21/03/2006, 13h12

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