[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>
Résultat

Accueil

Laissez un commentaire