Public feed #528648

Untitled

public php v1 · immutable
Raw Edit
·published 2007-06-01 16:52 UTC
rendered paste body
<?php// On extrait toutes les variables contenu dans les variables $_POST et $_GETif(isset($_POST))	extract($_POST,EXTR_OVERWRITE);if(isset($_GET))	extract($_GET,EXTR_OVERWRITE);if(isset($page) && (!empty($page))) {switch($page){	case 'listeBraderies' :						$departements = array();						$i=0;						foreach ($_POST as $nomVariableCheckbox => $idCheckbox) {							//echo "nomVariableCheckbox ".$nomVariableCheckbox."<br />";								foreach ($idCheckbox as $id => $valeur) {								//echo "Variable POST : ".$nomVariableCheckbox.'['.$id.']='.$valeur."<br/><br/>";								$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.'&region='.$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 = '(<strong><font size=\"\+2\">[\s]?[\w])';$listeBraderies = preg_split($separateurs, $pageBraderies);//echo '<br/>';echo sizeof($listeBraderies);//echo $listeBraderies[1];for($i=0;$i < sizeof($listeBraderies);$i++){echo "\n".'<hr>'."\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 braderiepreg_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 jourif(!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*<strong><font size=\"\+2\">\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 "<br/>";	echo "Date fin braderie : ".$libelleJourDebut[0][4]." ".$libelleJourDebut[0][5]." ".$libelleJourDebut[0][6];}/*$tmpListeBraderies = htmlentities($listeBraderies[$i]);$tmpListeBraderies2 = ereg_replace('&quot;','',$tmpListeBraderies);$tmpListeBraderies2 = ereg_replace('&nbsp;','',$tmpListeBraderies);echo $tmpListeBraderies2;*/$separateursBrad = '<table width="700" border="0" class="tabliste">';$braderies = split($separateurs, $listeBraderies[$i]);//Expression régulière scrutant l'adresse de chaque braderiespreg_match_all("|<td width=\"650\">\s+\n\s+(\d*)\s+&nbsp;\s+<strong>\s+\n\s+([\-*\w*\'*\s*\S*]*)\s+<\/strong>&nbsp;\s+\n\s+\-\s{1}([\'\"*è*é*\-*\w*\s*\d*.*]*)\s{1}\-\s{1}|U",                 $listeBraderies[$i],                 $braderiess,		PREG_SET_ORDER);		// regex adresse : =>   		echo "<br/><br/>Nombre de braderies :".sizeof($braderiess);		echo "<br/>"; 	echo "Departement Braderie : ".$braderiess[1][1];	echo "<br/>"; 	echo "Ville Braderie : ".$braderiess[1][2];	echo "<br/>"; 	echo "Adresse Braderie : ".$braderiess[1][3];	echo "<br/>"; /*for($i=0;$i <= sizeof($braderiess);$i++){	echo "<br/>"; 	echo "Departement Braderie : ".$braderiess[$i][1];	echo "<br/>"; 	echo "Ville Braderie : ".$braderiess[$i][2];	echo "<br/>"; 	echo "Adresse Braderie : ".$braderiess[$i][3];	echo "<br/>"; }*/echo "\n".'<hr>'."\n\n";unset($braderiess);/*//Expression régulière scrutant les informations de chaque braderiespreg_match_all("|<tr>\s\n\s+<td width=\"650\">\s\n\s+([\d+]*)\s+&nbsp;\s<strong>|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&region=9$urlDeRecuperation = 'calendrier/imprimable/choix_dep.php?p_mois='.$idMois.'&region='.$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 moispreg_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.'<br/>';	$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 moispreg_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 moisfor($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égionspreg_match_all("|<AREA \n      title=\"([\.\ô\w\-\&\;]*)\" shape=\"POLY\" alt=\"[\.\ô\w\-\&\;]*\" \n      coords=[\d,]* \n      href=\"calendrier\.php\?region=([\d]+)\&|U",                 $pageRegions,                 $outRegions,                 PREG_SET_ORDER);		 //On parcours nos résultats des régionsfor($i=0;$i < sizeof($outRegions);$i++){	$tmpId = $outRegions[$i][2];	$tmpRegions = $outRegions[$i][1];	$regionsParse[$tmpId] = $tmpRegions;}foreach ($moisParse as $id => $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()) . "<br/>\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)) . "<br/>\n";	} else {	    //echo "OK.\n";	}		$urlReferer = 'http://www.pointsdechine.com/calendrier/imprimable/choix_dep.php?p_mois='.$idMois.'&region='.$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()) . "<br/>\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)) . "<br/>\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);}?>