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 :

recherche de mots dans une chaine de caractères


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 87
    Points : 49
    Points
    49
    Par défaut recherche de mots dans une chaine de caractères
    Bonjour,

    Je vous explique mon ptit problème:
    J'aimerais découper un fichier rtf à chaque paragraphes en plusieurs fichiers rtf.
    Donc j'ai commencé un programme qui lit le fichier rtf et qui stocke tout dans une chaine de caractères.
    La syntaxe rtf dit : "chaque fois que l'on rencontre '\par' un nouveau paragraphe commence"

    Donc ce que j'aimerais c'est un moyen pour trouver chaque occurence du mot '\par' et à chaque fois que je rencontre une occurence, j'enregistre le paragraphe dans un fichier rtf.

    Pourriez vous m'aider??? car je n'ai tjs pas trouvé la fonction qui fesait cela...

    Voilà le début de mon programme:

    [php]
    <?php
    $InpRTF = "input.rtf";
    $i=0;

    if (file_exists($InpRTF))
    {
    $fp = fopen($InpRTF,"r");
    while (!feof($fp))
    {
    $rtf .= fgets($fp, 4096);
    }
    fclose($fp);
    }
    else
    {
    print "Inputfile: <strong>$InpRTF</strong> ";
    }
    $cpt=strlen($rtf);
    echo "$rtf";
    [/php]

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    essaie avec la fonction explode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tableau_de_paragraphes = explode("\\par", $mon_contenu_rtf);
    et après, chaque élément de ton tableau correspondra à un paragraphe
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    la fonction strtok fait cela
    voila sa synthaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $paragraphe = strtok(taVariableDeTexte,tonSeparateur);
    Donc pour toi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $paragraphe = strtok(taVariable,"\par,");
     
    while ($paragraphe != NULL){
         enregistrement de $paragraphe dans un fichier rtf
         $paragraphe = strtok(NULL,"\par");
    }
    Voila pour la synthaxe
    Strtok va découper ta chaîne à chaque fois qu'il va rencontrer \par

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    merci, je connaissais pas du tout cette fonctions! C'est trop cool!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    Il y a t'il une fonction pour créer des fichier autant que l'on veut??
    car au debut, je ne sait pas combien de fichier j'aurai, donc je dois les creer et les ouvrir dans ma boucle.
    J'ai essayé cela: ...mais ca ne vas pas!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo.> $fichier_pour_un_paragraphe;
    copy nul fichier_pour_un_paragraphe;
    genre 'equivalent de 'mkdir' pour les dossiers?

    Pour l'instant j'en suis ici:


    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Document sans titre</title>
    </head>
     
    <body>
    <?php
    $InpRTF = "input.rtf"; 
    $i=1;
     
    	if (file_exists($InpRTF)) 
    	{
    		$fp = fopen($InpRTF,"r"); 
    		while (!feof($fp)) 
    		{ 
    			$mon_contenu_rtf .= fgets($fp, 4096);
    		}
    		fclose($fp); 
    	}
    	else 
    	{
    		print "Inputfile: <strong>$InpRTF</strong> ";
    	}
    	//$cpt=strlen($mon_contenu_rtf);
    	echo "$rtf";
     
    	$tableau_de_paragraphes = explode("\\par", $mon_contenu_rtf); 
     
    	foreach ($tableau_de_paragraphes as $value)
    	{
    		$fichier_pour_un_paragraphe="fichier".$i.".rtf";
    		echo "nom du fichier:  ";
    		echo "$fichier_pour un paragraphe<br>";
     
    		echo.> $fichier_pour_un_paragraphe;
    		copy nul fichier_pour_un_paragraphe;
     
    		if (file_exists($fichier_pour_un_paragraphe)) 
    		{
    			$fichier= fopen($fichier_pour_un_paragraphe,"r+");
     
    			echo "Valeur : " . $value . "<br><br><br>";
     
    			fclose(fichier_pour_un_paragraphe);
    		}
    		else echo "fichier n'existe pas";
     
    		$i++;
    	}
     
     
     
    	?>
    </body>
    </html>
    -----
    edit:

    je viens de trouver: c'est la commande touch(string file);

  6. #6
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    quand tu fait un fopen, tu peux lui passer un paramêtre pour qu'il crée le fichier si il n'existe pas (w+ par exemple).

    tu fait donc un fopen du nom de ton fichier-paragraphe, puis un fwrite de l'élément de ton tableau correspondant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $fichier_ouvert = fopen ($fichier_pour_un_paragraphe, "w+");
    			if ( !fwrite($fichier_ouvert, $value)) {
    				echo "Impossible d'écrire dans le fichier";
    				exit;
    			}
    fclose($fichier_ouvert);
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. Rechercher un mot dans une chaine de caractères
    Par zellinho dans le forum SAS Base
    Réponses: 4
    Dernier message: 14/03/2013, 09h52
  3. KSH : recherche d'un mot dans une chaine de caractère
    Par Cj_Dal dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 10/08/2010, 09h41
  4. Recherche d'un mot dans une chaine de caractère
    Par thanks33 dans le forum Langage
    Réponses: 2
    Dernier message: 12/06/2009, 12h26
  5. [Regex]Recherche de mots dans une chaîne
    Par lionel69 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 17/11/2005, 18h20

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