19,7 → 19,7 |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id:$ |
// CVS : $Id: projet_statistiques.php,v 1.2 2008-03-28 08:19:07 j_grillot Exp $ |
/** |
* Application projet |
* |
31,7 → 31,7 |
//Autres auteurs : |
*@author Julien Grillot <julien.grillot@gmail.com> |
*@copyright Tela-Botanica 2000-2005 |
*@version $Revision:$ |
*@version $Revision: 1.2 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
49,44 → 49,6 |
define("URL_WIKINI", "http://www.tela-botanica.org/wikini/"); |
|
/** |
* Retourne le contenu de la page $adresse de facon asynchrone |
* @param string $adresse URL de la page dont le contenu doit etre recupere |
* @param int timeout temps d'attente maximum avant abandon de la recuperation |
*/ |
function monFileGetContents($adresse, $timeout = 30){ |
$url = parse_url($adresse); |
$url['port'] = isset($url['port']) ? $url['port'] : '80'; |
$url['scheme'] = isset($url['scheme']) ? strtoupper($url['scheme']) : 'HTTP'; |
$fp = fsockopen($url['host'], $url['port'], $errno, $errstr, $timeout); |
if (!$fp) { |
echo "Erreur de socket: $errno - $errstr<br />\n"; |
return false; |
} else { |
$header = 'GET '.$url['path'].' '.$url['scheme']."/1.1\r\n"; |
|
$header .= "Host: www.yahoo.com\r\n"; |
$header .= "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204\r\n"; |
$header .= "Referer: http://www.yahoo.com/\r\n"; |
|
$header .= 'Connection: Close\r\n\r\n'; |
|
fputs($fp, $header); |
stream_set_timeout($fp, $timeout); |
while (!feof($fp)) { |
$page .= fread($fp, 262144); |
} |
$stream = stream_get_meta_data($fp); |
fclose($fp); |
if ($stream['timed_out']) { |
echo 'Le délai de réponse de la page <b>'.$adresse.'</b> a dépassé le timeout de <b>'.$timeout.'</b> sec.'; |
return false; |
}else{ |
return $page; |
} |
} |
} |
|
/** |
* Procedure retrouvant le nombre de contribution, de message et le contenu de la page a partir des informations de la BDD |
* @param object $ligne resultat d'un fetch row contenant l'url du document a analyser |
* @param int $nombre_contrib recupere le nombre de contributions du projet |
114,8 → 76,10 |
|
// Recherche du schema retrouvant le nombre de nouveaux message dans la semaine |
$pattern='>([0-9]+)</span> nouveau'; |
$contenu=monFileGetContents($url); |
|
// Quelques soucis avec la version asynchrone (sockopen) |
$contenu=file_get_contents($url); |
|
$r=($contenu?true:false); |
ereg($pattern, $contenu, $no); |
$nombre_message=$no[1]; |
165,6 → 129,7 |
'left join projet_lien_liste_externe on plle_id_projet=p_id ' . |
'left join agora on plle_id_liste=AGO_A_ID ' . |
'group by p_id order by p_titre' ; |
|
$resultat = $this->_db->query($requete) ; |
if (DB::isError($resultat)) { |
return ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ; |
204,7 → 169,7 |
if($ligne_verif->ps_maj < date("Y-m-d H:i:s", time()-NB_SEC_UPDATE)) { |
|
// Recupere nombre_contrib et nombre_message |
$calculs=analyser($ligne_verif, $nombre_contrib, $nombre_message); |
$calculs=analyser($ligne, $nombre_contrib, $nombre_message); |
|
$requete_maj = 'UPDATE projet_statistiques SET ps_msg_derniere_semaine="'.$nombre_message.'", ps_doc_derniere_semaine="'.$ligne->nb_doc.'", ps_nombre_inscrit="'.$ligne->nb_utilisateur.'", ps_nombre_inscrit_liste="'.$ligne->nb_utilisateur_liste.'", ps_modifwiki_derniere_semaine="'.$nombre_contrib.'", ps_maj=NOW() WHERE ps_ce_projet="'.$ligne->p_id.'" AND ps_date="'.$ligne->ps_date.'"'; |
$resultat_maj = $this->_db->query($requete_maj); |
266,7 → 231,13 |
return $res; |
|
/* +--Fin du code ---------------------------------------------------------------------------------------+ |
* $Log:$ |
* $Log: projet_statistiques.php,v $ |
* Revision 1.2 2008-03-28 08:19:07 j_grillot |
* retrait de la fonction monFileGetContents inutilisée & commentaires |
* |
* Revision 1.1 2008-03-27 09:15:36 j_grillot |
* Correction du bug sur le parsing xml |
* |
* +--Fin du code ----------------------------------------------------------------------------------------+ |
*/ |
?> |