begin process at 2012 05 29 02:00:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Extraire des portions de textes d'un fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Extraire des portions de textes d'un fichier

jeudi 21 juillet 2011 à 23:04:43 | Extraire des portions de textes d'un fichier

apz



Bonjour à tous,

J'ai un fichier texte sous la forme suivante :

Code :
1
Titre-1
texte.........
..............
Titre-2
texte.........
..............
.............
Titre-3
texte...........
2
Titre-1
texte.........
..............
Titre-2
texte.........
..............
.............
Titre-3
texte...........
3
Titre-1
texte.........
..............
Titre-2
texte.........
..............
.............
Titre-3
texte...........


....


Comment extraire, la partie n° 2, et scinder cette partie selon les titres avec leurs texte respectifs ?

Merci.

vendredi 22 juillet 2011 à 01:12:45 | Re : Extraire des portions de textes d'un fichier

apz


J'ai essayé avec ce code, mais rien ne vient encore :

Code PHP :
<?php
define('FICHIER', 'txt.txt');
 
//$d = date("d");
$d=2;

$existe = FALSE;
@$fp = fopen(FICHIER, 'r') or die('Ouverture en lecture de "' . FICHIER . '" impossible !');
while (!feof($fp) && !$existe) {
    $ligne = fgets($fp, 1024);
	if (trim($ligne)==$d) 
	{
		// recuperer par exemple le texte entre le bloc 2 et le bloc 3
		if (preg_match("$d([^$d+1]*)i", $fp, $resultat)) echo "resultat 1 = ".$resultat[1]."<br />"; 
        $existe = TRUE;
    }
}
fclose($fp);

?>
vendredi 22 juillet 2011 à 01:44:41 | Re : Extraire des portions de textes d'un fichier

kohntark

Membre Club
Salut,

Il serait souhaitable d'en connaitre un peu plus sur le texte et ses caractéristiques (son formatage quoi)
Quelles sont les parties qui sont toujours identiques ?
Sur ce que tu donnes j'imagine que [titre-] est variable ?

... le mieux serait un exemple :)


Cordialement,



Kohntark -
vendredi 22 juillet 2011 à 20:58:01 | Re : Extraire des portions de textes d'un fichier

apz

Bonsoir kohntark,

Voila un exemple identique.

Code :
1
[b]proverbe[/b]
Ex his quidam aeternitati se commendari posse per statuas aestimantes
eas ardenter adfectant quasi plus praemii de figmentis aereis sensu
carentibus adepturi, quam ex conscientia honeste recteque factorum,
easque auro curant inbracteari, quod Acilio Glabrioni delatum est primo,
cum consiliis armisque regem superasset Antiochum. quam autem sit
pulchrum exigua haec spernentem et minima ad ascensus verae gloriae
tendere longos et arduos, ut memorat vates Ascraeus, Censorius Cato
monstravit. qui interrogatus quam ob rem inter multos... statuam non
haberet malo inquit ambigere bonos quam ob rem id non meruerim, quam
quod est gravius cur inpetraverim mussitare.
[b]dicton[/b]
Sed ut tum ad senem senex de senectute, sic hoc libro ad amicum
amicissimus scripsi de amicitia. Tum est Cato locutus, quo erat nemo
fere senior temporibus illis, nemo prudentior; nunc Laelius et sapiens
(sic enim est habitus) et amicitiae gloria excellens de amicitia
loquetur. Tu velim a me animum parumper avertas, Laelium loqui ipsum
putes. C. Fannius et Q. Mucius ad socerum veniunt post mortem Africani;
ab his sermo oritur, respondet Laelius, cuius tota disputatio est de
amicitia, quam legens te ipse cognosces.
[b]anecdote[/b]
Illud tamen te esse admonitum volo, primum ut qualis es talem te esse
omnes existiment ut, quantum a rerum turpitudine abes, tantum te a
verborum libertate seiungas; deinde ut ea in alterum ne dicas, quae cum
tibi falso responsa sint, erubescas. Quis est enim, cui via ista non
pateat, qui isti aetati atque etiam isti dignitati non possit quam velit
petulanter, etiamsi sine ulla suspicione, at non sine argumento male
dicere? Sed istarum partium culpa est eorum, qui te agere voluerunt;
laus pudoris tui, quod ea te invitum dicere videbamus, ingenii, quod
ornate politeque dixisti.
[b]idée[/b]
Has autem provincias, quas Orontes ambiens amnis imosque pedes Cassii
montis illius celsi praetermeans funditur in Parthenium mare, Gnaeus
Pompeius superato Tigrane regnis Armeniorum abstractas dicioni Romanae
coniunxit.

2
proverbe
Ex his quidam aeternitati se commendari posse per statuas aestimantes
eas ardenter adfectant quasi plus praemii de figmentis aereis sensu
carentibus adepturi, quam ex conscientia honeste recteque factorum,
easque auro curant inbracteari, quod Acilio Glabrioni delatum est primo,
cum consiliis armisque regem superasset Antiochum. quam autem sit
pulchrum exigua haec spernentem et minima ad ascensus verae gloriae
tendere longos et arduos, ut memorat vates Ascraeus, Censorius Cato
monstravit. qui interrogatus quam ob rem inter multos... statuam non
haberet malo inquit ambigere bonos quam ob rem id non meruerim, quam
quod est gravius cur inpetraverim mussitare.
dicton
Sed ut tum ad senem senex de senectute, sic hoc libro ad amicum
amicissimus scripsi de amicitia. Tum est Cato locutus, quo erat nemo
fere senior temporibus illis, nemo prudentior; nunc Laelius et sapiens
(sic enim est habitus) et amicitiae gloria excellens de amicitia
loquetur. Tu velim a me animum parumper avertas, Laelium loqui ipsum
putes. C. Fannius et Q. Mucius ad socerum veniunt post mortem Africani;
ab his sermo oritur, respondet Laelius, cuius tota disputatio est de
amicitia, quam legens te ipse cognosces.
anecdote
Illud tamen te esse admonitum volo, primum ut qualis es talem te esse
omnes existiment ut, quantum a rerum turpitudine abes, tantum te a
verborum libertate seiungas; deinde ut ea in alterum ne dicas, quae cum
tibi falso responsa sint, erubescas. Quis est enim, cui via ista non
pateat, qui isti aetati atque etiam isti dignitati non possit quam velit
petulanter, etiamsi sine ulla suspicione, at non sine argumento male
dicere? Sed istarum partium culpa est eorum, qui te agere voluerunt;
laus pudoris tui, quod ea te invitum dicere videbamus, ingenii, quod
ornate politeque dixisti.
idée
Has autem provincias, quas Orontes ambiens amnis imosque pedes Cassii
montis illius celsi praetermeans funditur in Parthenium mare, Gnaeus
Pompeius superato Tigrane regnis Armeniorum abstractas dicioni Romanae
coniunxit.

3
proverbe
Ex his quidam aeternitati se commendari posse per statuas aestimantes
eas ardenter adfectant quasi plus praemii de figmentis aereis sensu
carentibus adepturi, quam ex conscientia honeste recteque factorum,
easque auro curant inbracteari, quod Acilio Glabrioni delatum est primo,
cum consiliis armisque regem superasset Antiochum. quam autem sit
pulchrum exigua haec spernentem et minima ad ascensus verae gloriae
tendere longos et arduos, ut memorat vates Ascraeus, Censorius Cato
monstravit. qui interrogatus quam ob rem inter multos... statuam non
haberet malo inquit ambigere bonos quam ob rem id non meruerim, quam
quod est gravius cur inpetraverim mussitare.
dicton
Sed ut tum ad senem senex de senectute, sic hoc libro ad amicum
amicissimus scripsi de amicitia. Tum est Cato locutus, quo erat nemo
fere senior temporibus illis, nemo prudentior; nunc Laelius et sapiens
(sic enim est habitus) et amicitiae gloria excellens de amicitia
loquetur. Tu velim a me animum parumper avertas, Laelium loqui ipsum
putes. C. Fannius et Q. Mucius ad socerum veniunt post mortem Africani;
ab his sermo oritur, respondet Laelius, cuius tota disputatio est de
amicitia, quam legens te ipse cognosces.
anecdote
Illud tamen te esse admonitum volo, primum ut qualis es talem te esse
omnes existiment ut, quantum a rerum turpitudine abes, tantum te a
verborum libertate seiungas; deinde ut ea in alterum ne dicas, quae cum
tibi falso responsa sint, erubescas. Quis est enim, cui via ista non
pateat, qui isti aetati atque etiam isti dignitati non possit quam velit
petulanter, etiamsi sine ulla suspicione, at non sine argumento male
dicere? Sed istarum partium culpa est eorum, qui te agere voluerunt;
laus pudoris tui, quod ea te invitum dicere videbamus, ingenii, quod
ornate politeque dixisti.
idée
Has autem provincias, quas Orontes ambiens amnis imosque pedes Cassii
montis illius celsi praetermeans funditur in Parthenium mare, Gnaeus
Pompeius superato Tigrane regnis Armeniorum abstractas dicioni Romanae
coniunxit.

4
....

5
.... 

6
....
samedi 23 juillet 2011 à 12:34:01 | Re : Extraire des portions de textes d'un fichier

kohntark

Membre Club
Re,

"$d([^$d+1]*)i"


Il faut toujours essayer de faire le plus simple possible, ce qui est paradoxalement le plus difficile, mais là ta regex l'est vraiment trop.
tu ne matcheras rien du tout avec ça

Code PHP :
<?php
$str = '[ton texte]';
$regex = '`^

    (?<=\s{1})\d{1,2}\s
    (?:\[b])?proverbe(?:\[/b])?\s
    (?<proverbe>.*)
    \s(?:\[b])?dicton(?:\[/b])?\s
    (?<dicton>.*)
    \s(?:\[b])?anecdote(?:\[/b])?\s
    (?<anecdote>.*)
    \s(?:\[b])?idée(?:\[/b])?\s
    (?<idee>.*(?=\s\s|\Z))
    `xsmuU';



preg_match_all($regex, $str, $a, PREG_SET_ORDER);

echo 'Voici le dicton du premier chapitre :<br />'.$a[0]['dicton'].'<br />

    et là le proverbe du troisième :<br />'.$a[2]['proverbe'].'<br />
        et l\'idée est la suivante<br />'.$a[2]['idee'];

?>

Je n'ai pas testé à 200% et des améliorations sont sans doute possibles.

Cordialement,


Kohntark -
dimanche 24 juillet 2011 à 13:48:01 | Re : Extraire des portions de textes d'un fichier

apz

Non le BBCODE (Gras=[b ][ /b]) sont juste pour démontrer les sous-titres de chaque section qu'il faut extraire.

Même je l'ai enlever, mais ça ne donne rien

Code PHP :
$regex = '`^

    (?<=\s{1})\d{1,2}\s
    (?:\)?proverbe(?:\)?\s
    (?<proverbe>.*)
    \s(?:\)?dicton(?:\)?\s
    (?<dicton>.*)
    \s(?:\)?anecdote(?:\)?\s
    (?<anecdote>.*)
    \s(?:\)?idée(?:\)?\s
    (?<idee>.*(?=\s\s|\Z))
    `xsmuU';

dimanche 24 juillet 2011 à 14:16:42 | Re : Extraire des portions de textes d'un fichier

kohntark

Membre Club
La regex fonctionne parfaitement sur le texte que tu as donné, je l'ai testé.
Le code retourne un tableau de la forme :
array(
['premier chapitre, soit l'index 0']=>
array(
'proverbe'=>'texte du proverbe',
'dicton'=>'texte du dicton',
'anecdote'=> 'texte de l'anecdote',
'idee'=> 'texte de l'idée'
['second chapitre, soit l'index 1] => array(...)
[etc ...]
}

Si ça ne fonctionne pas chez toi avec le texte que tu fournis ici il se peut qu'il y ait des problèmes d'encodage. Tu peux dans ce cas essayer en virant l'option "u"

Dans les autres cas c'est que le texte sur lequel tu appliques la regex n'est pas structuré de la même façon que l'exemple que tu donnes.
L'idéal serait de voir le texte, sans aucune modification.

Non le BBCODE (Gras=[b ][ /b]) sont juste pour démontrer les sous-titres de chaque section qu'il faut extraire.


Si tu ne le précises pas il n'est pas possible de le deviner, surtout que le BBCode ne fonctionne pas à l'intérieur d'une balise [code]

Même je l'ai enlever, mais ça ne donne rien


La présence, ou non, des [b ][ /b] ne change de toute façon rien, il sont déjà optionnels.
Vu la manière dont tu les as supprimés c'est sur que ça ne risque pas de fonctionner, la regex elle même n'étant déjà plus valide (== plantage de preg_match_all())



Kohntark -


Cette discussion est classée dans : fichier, texte, titre, extraire, portions


Répondre à ce message

Sujets en rapport avec ce message

extraire une ligne d'un fichier texte [ par matthieugregoire ] Bonjour à tous!!Je suis tout à fait novice dans l'usage de php et c'est pourquoi j'ai besoin que l'on me donne un petit coup de pouce. Je vous expose Extraire des informations d'un fichier texte [ par med93100 ] Bonjour la compagnie , Je tiens deja à vous dire que je suis débutant en PHP , donc mon prolbème est la , j'ai un texte avec plein de code html par e extraire du texte d'un fichier pdf avec php [ par langagec08 ] Bonjour tout le monde, j'aimerai s'il vous plait savoir comment peut on extraire du texte d'un fichier pdf avec php, j'ai beau chercher sur le net mai comment afficher Le texte descriptif et le titre sur Google [ par elmeksaoui1 ] Bonjour, j ai héberger un site web et je vaudrais afficher Le texte descriptif et le titre sur moteurs de recherche Google lorsqu'on fait une recher problème d'affichage une fichier texte de la base [ par imeneiag ] bonjour, j'ai un menu verticale ,qui affiche les données de la base de données. je veux quand je clic sur un sous menu ,j'affiche une page qui contie probleme modification fichier texte [ par mageek06 ] Bonjour, dans un formulaire j'aimerais dans une zone de texte éditer un fichier selon sa date. Le probleme est que lorsque je rentre la date (1502200 Extraire plusieurs lignes d'un fichier excel [ par Nihilithe ] Bonjour, Je souhaite extraire plusieurs lignes d'un fichier excel de ce type : (Colonne A) (Colonne B sur excel) A01 Blabla1 B01 Recuperer donnée dans un fichier texte [ par smocky05 ] Bonjour, Cela fait plusieurs heures que je recherche sans succes un code en php. Je crait un sondage avec photos pour un concours photo . avec d Parcourir un fichier texte et insérer dans la base [ par ines_m ] bjr, mon problème consiste à parcourir un fichier texte, y repérer les champs souhaités et les insérer dans la base. le fichier se présente comme suit problème d'upload de fichier [ par lilj ] bonjour, voila je ne comprend pas pourquoi mon browser affiche undefined index aprés avoir envoyé une fichier !! voici mon code : mon form : [code=htm


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales