[PHP] extraire des infos d’un texte
Créé le : 18 mai 2017
Catégorie: Divers
Mise à jour : 18 mai 2017
[PHP] extraire des infos d’un texte
Parfois il est utile de pouvoir extraire des données depuis un texte
Exemple de donnée
texte qui n'a rien à voir du tout.... Nom TOTO Prénom titi Matricule 001009999 Responsable hiérarchique Cyberscooty Départ effectif le 30/10/2016 autre texte qui n'a rien a voir avec ce qui nous interesse
j’aimerai bien extraire dans 5 champs différents les informations Nom, Prenom, matricule, …
« Lire » et « traduire » le texte avec PHP
- Analyse ligne par ligne : utilisation de « explode » pour mise de chaque ligne dans une array
- recherche de la valeur qui nous interesse
- Une fois qu’on a trouvé la bonne ligne à analyser, on extrait les données
- On affiche les différentes variables
Code de la page avec un champ pour coller le texte source et un bouton pour faire la conversion
<?php include 'header.php';?> <div id="main"> <?php //test si envoi du formulaire convert if (isset($_POST['convert']) && $_POST['convert'] == 'convert') { $data=$_POST["data"]; //séparation des données par ligne $donnee = explode("\n", $data); //recherche ligne contenant 'Nom' - permet de selectionner la bonne ligne du texte source si il y a des lignes avant foreach($donnee as $key => $value) {if (strpos($value, 'Nom') !== false) {$cle=$key;}} //extraction des valeurs et mise dans une variable $nom=trim(substr($donnee[$cle],strpos($donnee[$cle], 'Nom')+4)); $prenom=trim(substr($donnee[$cle+1],strpos($donnee[$cle+1], 'nom')+4)); $resp=trim(substr($donnee[$cle+3],strpos($donnee[$cle+3], 'ique')+5)); $matricule=trim(substr($donnee[$cle+2],strpos($donnee[$cle+2], 'cule')+5)); $depart=trim(substr($donnee[$cle+4],strpos($donnee[$cle+4], ' le ')+4)); //affichage des variables echo '<h2>Résultat</h2>'; echo 'nom : '.$nom.'</br>'; echo 'prenom : '.$prenom.'</br>'; echo 'matricule : '.$matricule.'</br>'; echo 'responsable : '.$resp.'</br>'; echo 'depart : '.$depart.'</br>'; }//fin du if convert //==============début de la page ?> <h2>Source des données</h2> <form action="index.php" method="post"> <textarea placeholder="copier coller ici les données source" name="data"><?php echo $_POST["data"];?></textarea> <input type="submit" name="convert" value="convert"> </form> </body> </html>
Laissez un commentaire