530 lines
16 KiB
PHP
Executable File
530 lines
16 KiB
PHP
Executable File
<?php
|
|
|
|
//recup_joueursclub("05220264");
|
|
|
|
function recup_joueursclub($num_fft) {
|
|
//echo $num_fft;
|
|
$handle=ouvre_adresse_web($num_fft);
|
|
$nb_licencies=recup_nb_licencies($handle);
|
|
//echo $nb_licencies;
|
|
if($nb_licencies>0) {
|
|
fclose($handle);
|
|
$handle=ouvre_adresse_web($num_fft);
|
|
$tableauJoueurs=array();
|
|
$nb_pages=(int)($nb_licencies/10);
|
|
if(($nb_licencies%10)!=0) {
|
|
$nb_pages++;
|
|
}
|
|
$nb_lic_temp=$nb_licencies;
|
|
for($niveau=0;$niveau<($nb_pages*10);$niveau=$niveau+10) {
|
|
if($nb_lic_temp>=10) {
|
|
$nb_lic_page=10;
|
|
$nb_lic_temp=$nb_lic_temp-$nb_lic_page;
|
|
}
|
|
else {
|
|
$nb_lic_page=$nb_lic_temp;
|
|
}
|
|
if($niveau==0) {
|
|
$handle=ouvre_adresse_web($num_fft);
|
|
$tableauJoueurs=lecturePage($niveau,$nb_pages,$nb_lic_page, $handle, $tableauJoueurs);
|
|
}
|
|
else {
|
|
$handle=ouvre_page($niveau, $num_fft);
|
|
$tableauJoueurs=lecturePage($niveau,$nb_pages,$nb_lic_page, $handle, $tableauJoueurs);
|
|
}
|
|
}
|
|
//lectureTableau($tableauJoueurs);
|
|
insertion_bdd($tableauJoueurs);
|
|
}
|
|
else {
|
|
echo "Aucun licencié trouvé";
|
|
}
|
|
}
|
|
|
|
/* Charge la première page de la recherche */
|
|
function ouvre_adresse_web($num_fft) {
|
|
$ad_web="http://www.fft.fr/palmares/bdd/recherche_licencies/liste_licencies.asp?NOM=&PRENOM=&LICENCE=&NUMERO_CLUB=%s&image.x=0&image.y=0";
|
|
$ad_web=sprintf($ad_web, $num_fft);
|
|
if($file_handle=fopen($ad_web,"r")) {
|
|
return $file_handle;
|
|
}
|
|
else {
|
|
echo "Erreur ouverture fichier";
|
|
}
|
|
}
|
|
|
|
/* Charge les pages suivantes de la recherche */
|
|
function ouvre_page($niveau, $num_fft) {
|
|
$ad_web="http://www.fft.fr/palmares/bdd/recherche_licencies/liste_licencies.asp?NOM=&PRENOM=&LICENCE=&NUMERO_CLUB=%s&CLASSEMENT=&ANNEE_NAISSANCE=&Rechercher=Rechercher&Niveau=%s";
|
|
$ad_web=sprintf($ad_web, $num_fft, $niveau);
|
|
if($file_handle=fopen($ad_web,"r")) {
|
|
return $file_handle;
|
|
}
|
|
else {
|
|
echo "Erreur ouverture fichier";
|
|
}
|
|
|
|
}
|
|
|
|
/* Lit la page en cours */
|
|
function lecturePage($niveau, $nb_pages, $nb_lic_page, $file_handle, $tableauJoueurs) {
|
|
passeEnTeteHtml($file_handle);
|
|
PasseEnTeteBody($file_handle);
|
|
PasseLiensPage($niveau,$nb_pages, $file_handle);
|
|
passeEnTeteJoueurs($file_handle);
|
|
for($i=0;$i<$nb_lic_page;$i++)
|
|
$tableauJoueurs=donnees_joueur($file_handle, $tableauJoueurs);
|
|
return $tableauJoueurs;
|
|
}
|
|
|
|
/* Passe le bandeau de liens vers les pages annexes */
|
|
function PasseLiensPage($niveau, $nb_pages, $file_handle) {
|
|
for($i=0;$i<2;$i++)
|
|
passeTag($file_handle);
|
|
$page=($niveau/10)+1;
|
|
for($i=0;$i<$nb_pages;$i++) {
|
|
if($page==($i+1)) {
|
|
for($j=0;$j<2;$j++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($j=0;$j<2;$j++)
|
|
passeTag($file_handle);
|
|
}
|
|
else {
|
|
for($j=0;$j<6;$j++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($j=0;$j<3;$j++)
|
|
passeTag($file_handle);
|
|
}
|
|
}
|
|
if($page==1 or $page==$nb_pages) {
|
|
for($i=0;$i<3;$i++)
|
|
passeTag($file_handle);
|
|
}
|
|
else {
|
|
for($i=0;$i<6;$i++)
|
|
passeTag($file_handle);
|
|
}
|
|
passeElement($file_handle);
|
|
for($i=0;$i<16;$i++)
|
|
passeTag($file_handle);
|
|
}
|
|
|
|
/* Passe les balises HTML */
|
|
function passeTag($file_handle) {
|
|
while($c!='>') {
|
|
$c=fgetc($file_handle);
|
|
//echo $c;
|
|
}
|
|
|
|
}
|
|
|
|
/* Passe un élément inutile */
|
|
function passeElement($file_handle) {
|
|
while($c!='<') {
|
|
$c=fgetc($file_handle);
|
|
//echo $c;
|
|
}
|
|
}
|
|
|
|
/* Passe l'en-tete du fichier html */
|
|
function passeEnTeteHtml($file_handle) {
|
|
for($i=0;$i<4;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<12;$i++)
|
|
passeTag($file_handle);
|
|
}
|
|
|
|
/* Recherche dans la page le nombre de licenciés inscrits au club */
|
|
/* utile pour le nombre de pages et le nombre de joueurs à charger */
|
|
function recup_nb_licencies($file_handle) {
|
|
passeEnTeteHtml($file_handle);
|
|
|
|
for($i=0;$i<6;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<13;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<2;$i++)
|
|
passeTag($file_handle);
|
|
while($c!='<') {
|
|
$c=fgetc($file_handle);
|
|
$str.=$c;
|
|
}
|
|
$nb_licencies=(int)$str;
|
|
|
|
return $nb_licencies;
|
|
}
|
|
|
|
/* passeEnTeteJoueurs */
|
|
function passeEnTeteJoueurs($file_handle) {
|
|
passeTag($file_handle);
|
|
}
|
|
|
|
/* lecture des données de chaque joueur */
|
|
function donnees_joueur($file_handle, $tableauJoueurs) {
|
|
|
|
/* contient les données d'un joueur */
|
|
$tabJoueur=array();
|
|
|
|
/* Nom Prénom*/
|
|
for($i=0;$i<5;$i++)
|
|
passeTag($file_handle);
|
|
$tabJoueur=lecture_Element($file_handle, $tabJoueur);
|
|
|
|
/* Année */
|
|
for($i=0;$i<7;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<7;$i++)
|
|
passeTag($file_handle);
|
|
$tabJoueur=lecture_Annee($file_handle, $tabJoueur);
|
|
|
|
/* Sexe */
|
|
for($i=0;$i<7;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<4;$i++)
|
|
passeTag($file_handle);
|
|
$tabJoueur=lecture_Element($file_handle, $tabJoueur);
|
|
|
|
/* Licence */
|
|
for($i=0;$i<8;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<3;$i++)
|
|
passeTag($file_handle);
|
|
$tabJoueur=lecture_Element($file_handle, $tabJoueur);
|
|
|
|
/* Année (cotisation) */
|
|
for($i=0;$i<6;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<7;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
passeTag($file_handle);
|
|
$tabJoueur=lecture_Element($file_handle, $tabJoueur);
|
|
|
|
/* Classement Année courante */
|
|
for($i=0;$i<8;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<7;$i++)
|
|
passeTag($file_handle);
|
|
$tabJoueur=lecture_Element($file_handle, $tabJoueur);
|
|
|
|
/* Club Numéro Fédé */
|
|
for($i=0;$i<8;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<3;$i++)
|
|
passeTag($file_handle);
|
|
$tabJoueur=lecture_Element($file_handle, $tabJoueur);
|
|
|
|
/* Catégorie */
|
|
/*for($i=0;$i<3;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<7;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<7;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
passeTag($file_handle);
|
|
$tabJoueur=lecture_Element($file_handle, $tabJoueur); */
|
|
|
|
/* Classement Année précédente */
|
|
for($i=0;$i<5;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<6;$i++)
|
|
passeTag($file_handle);
|
|
for($i=0;$i<10;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<7;$i++)
|
|
passeTag($file_handle);
|
|
$tableauJoueur=lecture_Element($file_handle, $tabJoueur);
|
|
|
|
/* Catégorie */
|
|
for($i=0;$i<10;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<5;$i++)
|
|
passeTag($file_handle);
|
|
$tabJoueur=lecture_DateEnreg($file_handle, $tabJoueur);
|
|
|
|
/* Se positionne à la fin du bloc joueurs */
|
|
for($i=0;$i<9;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<4;$i++)
|
|
passeTag($file_handle);
|
|
|
|
array_push($tableauJoueurs, $tabJoueur);
|
|
|
|
/* retourne le tableau contenant les données des joueurs */
|
|
return $tableauJoueurs;
|
|
}
|
|
|
|
/* Lit les donnees utiles et les placent dans un tableau */
|
|
function PasseEnTeteBody($file_handle) {
|
|
/* Passe le nombre de licecies du club */
|
|
for($i=0;$i<6;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<13;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<2;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
/* Passe le commentaire du haut de page ( joueurs ayant fait un match ) */
|
|
for($i=0;$i<9;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
for($i=0;$i<7;$i++)
|
|
passeTag($file_handle);
|
|
passeElement($file_handle);
|
|
}
|
|
|
|
/* place l'élément dans le tableau */
|
|
function lecture_Element($file_handle, $tableauJoueur) {
|
|
while($c!='<') {
|
|
$c=fgetc($file_handle);
|
|
$str.=$c;
|
|
}
|
|
/* enleve le '<' et les espaces */
|
|
$str=substr($str, 0, strlen($str)-1);
|
|
$str=trim($str);
|
|
array_push($tableauJoueur, $str);
|
|
return $tableauJoueur;
|
|
}
|
|
|
|
/* Place l'année de naissance dans le tableau */
|
|
function lecture_Annee($file_handle, $tableauJoueur) {
|
|
while($c!='<') {
|
|
$c=fgetc($file_handle);
|
|
$str.=$c;
|
|
}
|
|
/* enleve le '<' , le $nbsp; et les espaces */
|
|
$str=substr($str, 6, 4);
|
|
$str=trim($str);
|
|
array_push($tableauJoueur, $str);
|
|
return $tableauJoueur;
|
|
}
|
|
|
|
/* Place la date d'enregistrement */
|
|
function lecture_DateEnreg($file_handle, $tableauJoueur) {
|
|
while($c!='<') {
|
|
$c=fgetc($file_handle);
|
|
$str.=$c;
|
|
}
|
|
/* enleve le '<' , le $nbsp; et les espaces */
|
|
$str=substr($str, 6, 10);
|
|
$str=trim($str);
|
|
array_push($tableauJoueur, $str);
|
|
return $tableauJoueur;
|
|
}
|
|
|
|
/* Affiche le tableau à l'écran */
|
|
function lectureTableau($tableauJoueur) {
|
|
print_r($tableauJoueur);
|
|
}
|
|
|
|
/* Insère le contenu du tableau dans la base */
|
|
function insertion_bdd($tableauJoueurs) {
|
|
include ("conf.php");
|
|
|
|
for($i=0;$i<count($tableauJoueurs);$i++) {
|
|
/* Gestion des noms prenoms */
|
|
list($nom, $prenom, $prenom1, $prenom2)=explode(" ",$tableauJoueurs[$i][0]);
|
|
if($prenom1!="" and $prenom2!="") {
|
|
$nom=$nom." ".$prenom;
|
|
$prenom=$prenom1." ".$prenom2;
|
|
}
|
|
else if ($prenom1!="") {
|
|
$tabToto=substr($prenom,1,1);
|
|
$ascii=ord($tabToto);
|
|
/* si le deuxième caractère est une majuscule */
|
|
if($ascii>=65 and $ascii<=90) {
|
|
$nom=$nom." ".$prenom;
|
|
$prenom=$prenom1;
|
|
}
|
|
else {
|
|
$nom=$nom;
|
|
$prenom=$prenom." ".$prenom1;
|
|
}
|
|
}
|
|
if($tableauJoueurs[$i][2]=='H') {
|
|
$sexe='m';
|
|
}
|
|
else {
|
|
$sexe='f';
|
|
}
|
|
$nom=addslashes($nom);
|
|
$nom=ucwords(strtolower($nom));
|
|
$numero_fft=$tableauJoueurs[$i][3];
|
|
/* controle si le joueur existe deja dans la base */
|
|
$requete="SELECT id_joueur FROM joueur WHERE numero_fft='$numero_fft'";
|
|
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
|
|
$existe=mysqli_num_rows($reponse);
|
|
if($existe==0) {
|
|
$annee=$tableauJoueurs[$i][1];
|
|
$classement=$tableauJoueurs[$i][5];
|
|
$requete="INSERT INTO joueur(nom, prenom, annee, sexe, classement, numero_fft) VALUES('$nom', '$prenom', '$annee','$sexe','$classement', '$numero_fft')";
|
|
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
|
|
$requete="SELECT MAX(id_joueur) FROM joueur";
|
|
$reponse1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
|
|
$joueur=mysqli_fetch_array($reponse1);
|
|
$numfft_club=$tableauJoueurs[$i][6];
|
|
$requete="SELECT id_club FROM club WHERE numero_fft='$numfft_club'";
|
|
$reponse2=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
|
|
$club=mysqli_fetch_object($reponse2);
|
|
/*$temp="MembreLicencié";*/
|
|
$temp=("MembreLicencié");
|
|
/*$temp1="Invité";*/
|
|
$temp1=("Invité");
|
|
$debut_tab=getdate(); /* tenir compte de la date d'enregistrement */
|
|
if($['']==0) {
|
|
$['']="00";
|
|
}
|
|
else if ($['']<10) {
|
|
$['']="0".$[''];
|
|
}
|
|
if($['']==0) {
|
|
$['']="00";
|
|
}
|
|
else if ($['']<10) {
|
|
$['']="0".$[''];
|
|
}
|
|
if($['']==0) {
|
|
$['']="00";
|
|
}
|
|
else if ($['']<10) {
|
|
$['']="0".$[''];
|
|
}
|
|
list($enr_jour, $enr_mois, $enr_annee)=explode("/", $tableauJoueurs[$i][7]);
|
|
$fin_annee=$enr_annee+1;
|
|
$ts_enr=mktime(0,0,0,$enr_mois, $enr_jour, $enr_annee);
|
|
$fin_annee=$enr_annee+1;
|
|
if(time() > ($ts_enr+(3600*24*430))) {
|
|
$paye='non';
|
|
}
|
|
else {
|
|
$paye='oui';
|
|
}
|
|
$ts_debut=mktime($[''],$[''],$[''],$enr_mois,$enr_jour,$enr_annee);
|
|
$debut=Date("YmdHis",$ts_debut);
|
|
// Ajoute un mois a la fin du compte
|
|
$ts_fin=$ts_debut+(3600*24*430);
|
|
$fin=Date("YmdHis",$ts_fin);
|
|
$now=time();
|
|
if($now>=$ts_fin) {
|
|
$invit=1;
|
|
}
|
|
else {
|
|
$invit=0;
|
|
}
|
|
$id_joueur=$joueur[0];
|
|
if($invit==1) {
|
|
$requete="INSERT INTO compte(id_joueur, id_club, statut, droit, actif_debut, actif_fin, solde, paiement) VALUES('$id_joueur','$club->id_club','$temp1','Usage','$debut','$fin','0','$paye')";
|
|
}
|
|
else {
|
|
$requete="INSERT INTO compte(id_joueur, id_club, statut, droit, actif_debut, actif_fin,paiement,solde) VALUES('$joueur[0]','$club->id_club','$temp','Usage','$debut','$fin','$paye','1000')";
|
|
}
|
|
echo "<center> requete $requete </center>";
|
|
$reponse3=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
|
|
}
|
|
/* si la personne existe deja en base */
|
|
else {
|
|
$annee=$tableauJoueurs[$i][1];
|
|
$classement=$tableauJoueurs[$i][5];
|
|
$numero_fft=$tableauJoueurs[$i][3];
|
|
$requete="UPDATE joueur SET nom='$nom', prenom='$prenom', annee='$annee', sexe='$sexe', classement='$classement' WHERE numero_fft='$numero_fft'";
|
|
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
|
|
|
|
$requete="SELECT id_joueur FROM joueur WHERE numero_fft='$numero_fft'";
|
|
$reponse1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
|
|
$joueur=mysqli_fetch_array($reponse1);
|
|
$numfft_club=$tableauJoueurs[$i][6];
|
|
$requete="SELECT id_club FROM club WHERE numero_fft='$numfft_club'";
|
|
$reponse2=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
|
|
$club=mysqli_fetch_object($reponse2);
|
|
/*$temp="MembreLicencié";*/
|
|
$temp=("MembreLicencié");
|
|
/*$temp1="Invité";*/
|
|
$temp1=("Invité");
|
|
$debut_tab=getdate(); /* tenir compte de la date d'enregistrement */
|
|
if($['']==0) {
|
|
$['']="00";
|
|
}
|
|
else if ($['']<10) {
|
|
$['']="0".$[''];
|
|
}
|
|
if($['']==0) {
|
|
$['']="00";
|
|
}
|
|
else if ($['']<10) {
|
|
$['']="0".$[''];
|
|
}
|
|
if($['']==0) {
|
|
$['']="00";
|
|
}
|
|
else if ($['']<10) {
|
|
$['']="0".$[''];
|
|
}
|
|
list($enr_jour, $enr_mois, $enr_annee)=explode("/", $tableauJoueurs[$i][7]);
|
|
$ts_enr=mktime(0,0,0,$enr_mois, $enr_jour, $enr_annee);
|
|
$fin_annee=$enr_annee+1;
|
|
if(time() > ($ts_enr+(3600*24*430))) {
|
|
$paye='non';
|
|
}
|
|
else {
|
|
$paye='oui';
|
|
}
|
|
$ts_debut=mktime($[''],$[''],$[''],$enr_mois,$enr_jour,$enr_annee);
|
|
$debut=Date("YmdHis",$ts_debut);
|
|
// Ajoute un mois a la fin du compte
|
|
$ts_fin=$ts_debut+(3600*24*430);
|
|
$fin=Date("YmdHis",$ts_fin);
|
|
$now=time();
|
|
if($now>=$ts_fin) {
|
|
$invit=1;
|
|
}
|
|
else {
|
|
$invit=0;
|
|
}
|
|
$id_joueur=$joueur[0];
|
|
$requete="SELECT id_compte, droit FROM compte WHERE id_joueur='$id_joueur' AND id_club='$club->id_club'";
|
|
$reponse3=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
|
|
$existe=mysqli_num_rows($reponse3);
|
|
if($existe==0) {
|
|
if($invit==1) {
|
|
$requete="INSERT INTO compte (id_joueur, id_club, statut, actif_debut, actif_fin, solde,paiement) VALUES('$joueur[0]','$club->id_club','$temp1','$debut', '$fin','0','$paye')";
|
|
}
|
|
else {
|
|
$requete="INSERT INTO compte (id_joueur, id_club, statut, actif_debut, actif_fin,paiement,solde) VALUES('$joueur[0]','$club->id_club','$temp', '$debut', '$fin','$paye','1000')";
|
|
}
|
|
}
|
|
else {
|
|
$compte=mysqli_fetch_object($reponse3);
|
|
if($invit==1) {
|
|
$requete="UPDATE compte SET id_club='$club->id_club', statut='$temp1', droit='$compte->droit', actif_debut='$debut', actif_fin='$fin', solde='0', paiement='$paye' WHERE id_compte='$compte->id_compte'";
|
|
}
|
|
else {
|
|
$requete="UPDATE compte SET id_club='$club->id_club', statut='$temp', droit='$compte->droit', actif_debut='$debut', actif_fin='$fin',paiement='$paye',solde='1000' WHERE id_compte='$compte->id_compte'";
|
|
}
|
|
}
|
|
echo "<center> requete $requete </center>";
|
|
$reponse3=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
|
|
}
|
|
}
|
|
}
|
|
?>
|