Commit ce8b4bb8 authored by Clement GAUDUCHEAU's avatar Clement GAUDUCHEAU
Browse files

ajout de lesAuteurs.txt ajoutAuteurDansBD.php extraireAuteur.php

parent 99ef1529
This diff is collapsed.
<p>connexion...</p>
<?php
try{
//$bdd = new PDO('mysql:host=localhost;dbname=testProjet;charset=utf8', 'root', 'cg210298'); //linux
$bdd = new PDO('mysql:host=localhost;dbname=projet_test;charset=utf8', 'root', ''); //windows
}catch(Exception $e){
die('Erreur : '.$e->getMessage());
}
?>
<p> REUSSI </p>
</br>
<p>insertion...</p>
</br>
<?php
ini_set('memory_limit', '-1'); //sur windows pour avoir memoire illimitée
// $fichier="../../data/lesAuteurs.txt";
$fichier="lesAuteurs.txt";
$handle=fopen($fichier,"r");
$content=fread($handle,filesize($fichier));
$split=explode("\n",$content); //on separe pour chaque saut de ligne
$j=0;
$colonneMatrice=0;
$ligneMatrice=0;
//var_dump($split);
//on separe les auteurs de leur oeuvres et dates
$auteurTitreDate=array();
for($i=0;$i<sizeof($split);$i++){
$auteurTitreDate[$i]=explode(",",$split[$i]); //on separe au virgule
}
//a cause de la derniere virgule, il y a une case vide dans chaque sous tableau donc on le supprime
for($j=0;$j<sizeof($auteurTitreDate);$j++){
for($k=0;$k<sizeof($auteurTitreDate[$j]);$k++){
if($auteurTitreDate[$j][$k]==""){
unset($auteurTitreDate[$j][$k]);
}
}
}
echo "taille de split :",sizeof($split);
echo "<br/> taille de auteurTitreDate : ",sizeof($auteurTitreDate);
//echo $auteurTitreDate[1][0];
//var_dump($auteurTitreDate);
/* for($cpt=1;$cpt<sizeof($auteurTitreDate)-1;$cpt++){
echo $auteurTitreDate[$cpt][0]," cpt= ",$cpt,"<br/>";
}
*/ //juste pour afficher les auteurs
for($cpt=0;$cpt<sizeof($split)-1;$cpt++){
$requete=$bdd->prepare("insert into auteur(nom) values(:auteur)");
$requete->execute(array('auteur'=>$auteurTitreDate[$cpt][0]));
}
echo "<br/>insertion reussie";
fclose($handle);
?>
<p>REUSSI </p>
<?php
<html lang="fr">
<head>
<meta charset="utf-8"/>
<title>Test</title>
</head>
<body>
</body>
</html>
<?php
ini_set('memory_limit', '-1'); //sur windows pour avoir memoire illimitée
function suppr_accents($str, $encoding='utf-8')
{
// transformer les caractères accentués en entités HTML
$str = htmlentities($str, ENT_NOQUOTES, $encoding);
// remplacer les entités HTML pour avoir juste le premier caractères non accentués
// Exemple : "&ecute;" => "e", "&Ecute;" => "E", "à" => "a" ...
$str = preg_replace('#&([A-za-z])(?:acute|grave|cedil|circ|orn|ring|slash|th|tilde|uml);#', '\1', $str);
// Remplacer les ligatures
// Exemple "œ" => "oe"
$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str);
// Supprimer tout le reste
$str = preg_replace('#&[^;]+;#', '', $str);
return $str;
}
$fichier="../../data/Toutes.txt";
//$fichier="Toutes.txt";
$handle=fopen($fichier,"r");
$content=fread($handle,filesize($fichier));
$split=explode("\n",$content); //on separe pour chaque saut de ligne
$i=0;
$citation=""; //string pour récupérer la citation
$matrice = array(); //matrice qui pour chaque ligne va contenir le nom de l'auteur - la source - la date - la citation
$colonneMatrice=0;
$ligneMatrice=0;
foreach ($split as $motCourant){
if(stristr($split[$i],'—')){ //on sait que cest la ligne de l'auteur
$colonneMatrice=0;
$string1 = stristr($split[$i], '—'); //ne recupere que la ligne ou il y a —
$split1= explode(",",$string1); //separe la ligne au niveau des virgules
$j=0;
foreach($split1 as $motCourant){ //affichage avec la séparation au niveau des virgules.
if($j==0){ // si cest l'auteur alors on enleve les accents et on met en majuscules
$split1[$j] = strtoupper(suppr_accents($split1[$j])); //enleve accents et met en MAJ
$matrice[$ligneMatrice][$colonneMatrice] = $split1[$j];
//echo $matrice[$ligneMatrice][$colonneMatrice];
$colonneMatrice++;
}
else{ // sinon affichage normal
if($j==1){
if((preg_match("#^[\" \"][^p]#",$split1[$j])))
$matrice[$ligneMatrice][$colonneMatrice] = $split1[$j];
}
else{
$split1[$j] = suppr_accents($split1[$j]);
//echo $split1[$j];
//"#^[^p][(]?[\" \"]?[1|2|3]?[1-9]?[\" \"]?[JAN|FEV|MAR|AVR|MAI|JUI|AOU|SEP|OCT|NOV|DEC]{0,1}[a-zA-Z]*[^p]?[\" \"]?[1|2]?[0-9]{3}[)]?#i"
if(preg_match("#^[\" \"|\"\"][^p][(]?[\" \"]?[1|2|3]?[1-9]?[\" \"]?[JAN|FEV|MAR|AVR|MAI|JUI|AOU|SEP|OCT|NOV|DEC]{0,1}[a-zA-Z]*[^p]?[\" \"]?[1|2]?[0-9]{3}[)]?#i", $split1[$j])){
$matrice[$ligneMatrice][$colonneMatrice] = $split1[$j];
} //fin regex
else{
$matrice[$ligneMatrice][$colonneMatrice] = null;
}
}
//echo $matrice[$ligneMatrice][$colonneMatrice];
$colonneMatrice++;
}
$j++;
}//fin foreach
$ligneMatrice++;
}
/* ?>
</br>
<?php
*/
$i++;
}
fclose($handle);
$fichierAuteur = fopen("../../data/lesAuteurs.txt","w+");//ecriture seule +écrit à la fin du fichier
//$fichierAuteur = fopen("lesAuteurs.txt","w+");
$i=0;
for($k=0; $k<$ligneMatrice;$k++){
for($c=0;$c<count($matrice[$k]);$c++){
if(isset($matrice[$k][$c]) && ($matrice[$k][$c]!=null)){
fwrite($fichierAuteur,$matrice[$k][$c].",");
//echo $matrice[$k][0];
}/*else{
echo $i."</br>PROBLEME </br>";
}*/
}
$i++;
fwrite($fichierAuteur,"\n");
}
echo $i;
echo "<br/>";
echo count($matrice[0]); //Permet de savoir combien de colonne il y a
fclose($fichierAuteur);
?>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment