$idCheckbox) { //echo "nomVariableCheckbox ".$nomVariableCheckbox."
"; foreach ($idCheckbox as $id => $valeur) { //echo "Variable POST : ".$nomVariableCheckbox.'['.$id.']='.$valeur."

"; $departements[$i] = $nomVariableCheckbox.'['.$id.']='.$valeur; $i++; } } chargementPage('listeBraderies.tpl',$p_mois,$p_region,$departements); break; case 'listeDepartements' : if((isset($p_mois)) && (isset($p_region))){ chargementPage('listeDepartements.tpl',$p_mois,$p_region,NULL); }else{ chargementPage(NULL,NULL,NULL,NULL); } break; default : chargementPage(NULL,NULL,NULL,NULL); break; } }else { chargementPage(NULL,NULL,NULL,NULL); } function chargementPage($page,$idMois,$idRegion,$idDepartements) { include 'template.class.php'; switch($page) { case 'listeBraderies.tpl': affichageBraderies($idMois,$idRegion,$idDepartements); break; case 'listeDepartements.tpl': affichageDepartements($idMois,$idRegion); break; case 'index.tpl': affichageIndex(); break; default : affichageIndex(); break; } } function affichageBraderies($idMois,$idRegion,$idDepartements){ //echo $idDepartements; // Instanciation de la classe $t = new Template('templates/listeBraderies.tpl'); // Simple variable $t->simpleVar(array( 'PAGE' => 'Sélection des braderies à visiter pour créer votre itinéraire', 'P_MOIS' => $idMois, 'P_REGION' => $idRegion, )); $url = '/calendrier/imprimable/calendrier_imprimable.php?k=5-1&p_mois='.$idMois.'®ion='.$idRegion; //$pageBraderies = postagePageSurPointDeChine($url,$idMois,$idRegion,$idDepartements); //echo $pageBraderies; $fp = fopen("test.html","r"); while(!feof($fp)) { $pageBraderies .= fgets($fp,255); } fclose($fp); //echo $pageBraderies; $listeBraderies = array(); $separateurs = '([\s]?[\w])'; $listeBraderies = preg_split($separateurs, $pageBraderies); //echo '
'; echo sizeof($listeBraderies); //echo $listeBraderies[1]; for($i=0;$i < sizeof($listeBraderies);$i++){ echo "\n".'
'."\n\n"; echo $listeBraderies[$i]; // SAUVEGARDE REGEX qui FONCTIONNE preg_match_all("|\s?\S?([\w]*\s+\S+[\d]*\s+\S+[\w]*) \n\s*\S*<\/font><\/strong>|U", //Expression régulière scrutant la date de la braderie preg_match_all("|(\w*)\s+(\d*)\s+(\w*)\s+\n\s*\S*<\/font><\/strong>|U", $listeBraderies[$i], $libelleJour, PREG_SET_ORDER); //Si la braderies est sur 1 jour if(!empty($libelleJour[0][1])){ echo "La date de la braderie est : ".$libelleJour[0][1]." ".$libelleJour[0][2]." ".$libelleJour[0][3]; $jourBraderies[$i][0] = $libelleJour[0][1]; }else{ //Expression régulière scrutant la date de la braderie preg_match_all("|(\w*)\s+(\d*)<\/font><\/strong>\s+\n\s*\S*\s+\n\S*\s*(\w*)\s+\w{2}\s+(\w*)\s+(\d*)\s+(\w*)\s+<\/font><\/strong>|U", $listeBraderies[$i], $libelleJourDebut, PREG_SET_ORDER); echo "Date debut braderie : ".$libelleJourDebut[0][1]." ".$libelleJourDebut[0][2]." ".$libelleJourDebut[0][3]; echo "
"; echo "Date fin braderie : ".$libelleJourDebut[0][4]." ".$libelleJourDebut[0][5]." ".$libelleJourDebut[0][6]; } /* $tmpListeBraderies = htmlentities($listeBraderies[$i]); $tmpListeBraderies2 = ereg_replace('"','',$tmpListeBraderies); $tmpListeBraderies2 = ereg_replace(' ','',$tmpListeBraderies); echo $tmpListeBraderies2; */ $separateursBrad = ''; $braderies = split($separateurs, $listeBraderies[$i]); //Expression régulière scrutant l'adresse de chaque braderies preg_match_all("|\s\n\s+
\s+\n\s+(\d*)\s+ \s+\s+\n\s+([\-*\w*\'*\s*\S*]*)\s+<\/strong> \s+\n\s+\-\s{1}([\'\"*è*é*\-*\w*\s*\d*.*]*)\s{1}\-\s{1}|U", $listeBraderies[$i], $braderiess, PREG_SET_ORDER); // regex adresse : => echo "

Nombre de braderies :".sizeof($braderiess); echo "
"; echo "Departement Braderie : ".$braderiess[1][1]; echo "
"; echo "Ville Braderie : ".$braderiess[1][2]; echo "
"; echo "Adresse Braderie : ".$braderiess[1][3]; echo "
"; /* for($i=0;$i <= sizeof($braderiess);$i++) { echo "
"; echo "Departement Braderie : ".$braderiess[$i][1]; echo "
"; echo "Ville Braderie : ".$braderiess[$i][2]; echo "
"; echo "Adresse Braderie : ".$braderiess[$i][3]; echo "
"; }*/ echo "\n".'
'."\n\n"; unset($braderiess); /* //Expression régulière scrutant les informations de chaque braderies preg_match_all("|
\s\n\s+([\d+]*)\s+ \s|U", $listeBraderies[$i], $tmpBraderie, PREG_SET_ORDER); echo $tmpBraderie[0]; */ } } function affichageDepartements($idMois,$idRegion){ // Instanciation de la classe $t = new Template('templates/listeDepartements.tpl'); // Simple variable $t->simpleVar(array( 'PAGE' => 'Recherche des braderies', 'P_MOIS' => $idMois, 'P_REGION' => $idRegion, )); // calendrier/imprimable/choix_dep.php?p_mois=1®ion=9 $urlDeRecuperation = 'calendrier/imprimable/choix_dep.php?p_mois='.$idMois.'®ion='.$idRegion; //Récupération de la page d'accueil de Point de Chine $pageDepartements = recuperationPageSurPointDeChine($urlDeRecuperation); //echo $pageDepartements; //Expression régulière scrutant les ids mois et les noms des mois preg_match_all("|name=\"(dpt\[[\d]+\])\" value=\"([\d]+)\"|U", $pageDepartements, $outDepartements, PREG_SET_ORDER); for($i=0;$i < sizeof($outDepartements);$i++) { $tmpVariable = $outDepartements[$i][1]; $tmpValeur = $outDepartements[$i][2]; //echo $tmpVariable.' = '.$tmpValeur.'
'; $departementParse[$tmpVariable] = $tmpValeur; } foreach ($departementParse as $nom => $valeur) { $t->loopVar('variable', array( 'NOM' => $nom, 'VALEUR' => $valeur )); } $t->parse(); } function affichageIndex(){ // Instanciation de la classe $t = new Template('templates/index.tpl'); // Simple variable $t->simpleVar(array( 'PAGE' => 'Recherche des départements', )); //Récupération de la page d'accueil de Point de Chine $pageAccueil = recuperationPageSurPointDeChine("index.php"); //Expression régulière scrutant les ids mois et les noms des mois preg_match_all("|calendrier-region\.php\?p_mois=(\d)\" class=\"sommaire\">(.+)]+>|U", $pageAccueil, $outAccueil, PREG_SET_ORDER); $mois = array("vide","janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"); //Mois en cours $idMois = date('n'); $moisParse[][] = array(); //On parcours nos résultats des mois for($i=0;$i < sizeof($outAccueil);$i++) { $tmpId = $outAccueil[$i][1]; $tmpMois = $outAccueil[$i][2]; $moisParse[$tmpId] = $tmpMois; } //Récupération de la page régions de Point de Chine $pageRegions = recuperationPageSurPointDeChine("calendrier/calendrier-region.php?p_mois=0"); //Expréssion régulière scrutant les ids régions et les noms de régions preg_match_all("|\"[\.\ô\w\-\&\;]*\" $mois) { $t->loopVar('mois', array( 'ID' => $id, 'MOIS' => $mois )); } foreach ($regionsParse as $id => $region) { $t->loopVar('region', array( 'ID' => $id, 'REGION' => $region )); } $t->parse(); } function postagePageSurPointDeChine($page,$idMois,$idRegion,$variablesDePost){ for($i=0;$i < sizeof($variablesDePost);$i++) { if($i == 0) $variableContent .= $variablesDePost[$i]; else $variableContent .= '&'.$variablesDePost[$i]; } $variableContent .= '&bt_valider=Valider'; $nombreCaracteres = strlen($variableContent); /* Lit le port du service WWW. */ $service_port = getservbyname('www', 'tcp'); /* Lit l'adresse IP du serveur de destination */ $address = gethostbyname('www.pointsdechine.com'); /* Cree une socket TCP/IP. */ $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { echo "socket_create() a échoué : raison : " . socket_strerror(socket_last_error()) . "
\n"; } else { // echo "OK.\n"; } //echo "Essai de connexion à '$address' sur le port '$service_port'..."; $result = socket_connect($socket, $address, $service_port); if ($socket === false) { echo "socket_connect() a échoué : raison : ($result) " . socket_strerror(socket_last_error($socket)) . "
\n"; } else { //echo "OK.\n"; } $urlReferer = 'http://www.pointsdechine.com/calendrier/imprimable/choix_dep.php?p_mois='.$idMois.'®ion='.$idRegion; $in = "POST /".$page." HTTP/1.1\r\n"; $in .= "Host: www.pointsdechine.com\r\n"; $in .= "User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.8.1.3) Gecko/20070321 Firefox/2.0.0.3\r\n"; $in .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n"; $in .= "Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n"; $in .= "Accept-Encoding: gzip,deflate\r\n"; $in .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n"; $in .= "Keep-Alive: 300\r\n"; $in .= "Referer: ".$urlReferer."\r\n"; $in .= "Content-Type: application/x-www-form-urlencoded\r\n"; $in .= "Content-Length: ".$nombreCaracteres."\r\n"; $in .= "\n".$variableContent."\r\n\r\n"; $out = ''; //echo "Envoi de la requête HTTP GET..."; socket_write($socket, $in, strlen($in)); //echo "OK.\n"; //echo "Lire la réponse : \n\n"; while ($out = socket_read($socket, 2048)) $out2 .= $out; return($out2); } function recuperationPageSurPointDeChine($page) { /* Lit le port du service WWW. */ $service_port = getservbyname('www', 'tcp'); /* Lit l'adresse IP du serveur de destination */ $address = gethostbyname('www.pointsdechine.com'); /* Cree une socket TCP/IP. */ $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { echo "socket_create() a échoué : raison : " . socket_strerror(socket_last_error()) . "
\n"; } else { // echo "OK.\n"; } //echo "Essai de connexion à '$address' sur le port '$service_port'..."; $result = socket_connect($socket, $address, $service_port); if ($socket === false) { echo "socket_connect() a échoué : raison : ($result) " . socket_strerror(socket_last_error($socket)) . "
\n"; } else { //echo "OK.\n"; } $in = "GET /".$page." HTTP/1.1\r\n"; $in .= "Host: www.pointsdechine.com\r\n"; $in .= "User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.8.1.3) Gecko/20070321 Firefox/2.0.0.3\r\n"; $in .= "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n"; $in .= "Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3\r\n"; $in .= "Accept-Encoding: gzip,deflate\r\n"; $in .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n"; $in .= "Keep-Alive: 300\r\n"; $in .= "Connection: keep-alive\r\n"; $in .= "Cache-Control: max-age=0\r\n"; $in .= "Connection: Close\r\n\r\n"; $out = ''; //echo "Envoi de la requête HTTP GET..."; socket_write($socket, $in, strlen($in)); //echo "OK.\n"; //echo "Lire la réponse : \n\n"; while ($out = socket_read($socket, 2048)) $out2 .= $out; return($out2); } ?>