'');
}
} else {
for ($cnt = 0; $cnt < sizeof($arr_engines) && !$found; $cnt++) {
if ($found = preg_match(',' . $arr_engines[$cnt][2] . ',', $host)
or $found = preg_match(',' . $arr_engines[$cnt][2] . ',', $path)
) {
$kw_referer_host = $arr_engines[$cnt][0];
if (strpos($arr_engines[$cnt][1], '=') !== false) {
// Fonctionnement simple: la variable existe dans l'array
$v = str_replace('=', '', $arr_engines[$cnt][1]);
$keywords = isset($Tquery[$v]) ? $Tquery[$v] : "";
// Si on a defini le nom de la variable en expression reguliere, chercher la bonne variable
if (!strlen($keywords) > 0) {
if (preg_match("," . $arr_engines[$cnt][1] . "([^\&]*),", $query, $vals)) {
$keywords = urldecode($vals[2]);
}
}
} else {
$keywords = "";
}
if (($kw_referer_host == "Google")
|| ($kw_referer_host == "AOL" && strpos($query, 'enc=iso') === false)
|| ($kw_referer_host == "MSN")
) {
include_spip('inc/charsets');
if (!isset($ie) or !$cset = $ie) {
$cset = 'utf-8';
}
$keywords = importer_charset($keywords, $cset);
}
$buffer["hostname"] = $kw_referer_host;
}
}
}
}
$buffer["host"] = $host;
$buffer["scheme"] = $scheme;
if (!isset($buffer["hostname"]) or !$buffer["hostname"]) {
$buffer["hostname"] = $host;
}
$buffer["path"] = substr($path, 1, strlen($path));
$buffer["query"] = $query;
if ($keywords != '') {
if (strlen($keywords) > 150) {
$keywords = spip_substr($keywords, 0, 148);
// supprimer l'eventuelle entite finale mal coupee
$keywords = preg_replace('/?[a-z0-9]*$/', '', $keywords);
}
$buffer["keywords"] = trim(entites_html(urldecode(stripslashes($keywords))));
}
return $buffer;
}
/**
* Recherche des articles pointes par le referer
* https://code.spip.net/@referes
*
* @param $referermd5
* @param string $serveur
* @return string
*/
function referes($referermd5, $serveur = '') {
$retarts = sql_allfetsel('J2.id_article, J2.titre',
'spip_referers_articles AS J1 LEFT JOIN spip_articles AS J2 ON J1.id_article = J2.id_article',
"(referer_md5='$referermd5' AND J1.maj>=DATE_SUB(" . sql_quote(date('Y-m-d H:i:s')) . ", INTERVAL 2 DAY))", '',
"titre", '', '', $serveur);
foreach ($retarts as $k => $rowart) {
$titre = typo($rowart['titre']);
$url = generer_url_entite($rowart['id_article'], 'article', '', '', true);
$retarts[$k] = "$titre";
}
if (count($retarts) > 1) {
return '→ ' . join(',
→ ', $retarts);
}
if (count($retarts) == 1) {
return '→ ' . array_shift($retarts);
}
return '';
}