Newsgroup: it.comp.www.php
Titolo: HTTP_REFERER Keyword

volevo sapere se conoscete un modo veloce per estrarre le keyword da un
HTTP_REFERER, senza usare le regex.
Vi ringrazio
ciao
Jeey

 un HTTP_REFERER, senza usare le regex.
http://www.php.net/parse_url
http://www.php.net/parse_str
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
Inviare email con allegati? 
http://url.repository.biz/go/1Z
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y
L'uomo, conscio di sbagliare, persevera.


si...ma usando parse_url che genera un'array associativo,
di cui mi serve solo [query] non fa altro che restituire
tutto cio' dopo il ? fino a #, quindi ugualmente mi tocca estrarre le 
keyword con una regex
e qui mi tocca scrivere una regex per quasi ogni motore di ricerca.
cmq grazie lo stesso
-- 
Using M2, Opera's revolutionary e-mail client: 
http://www.opera.com/m2/

 ogni motore di ricerca.  cmq grazie lo stesso
Ah, l'impegno, a voi giovani manca proprio:
<?php
$HTTP_REFERRER =
"
http://www.google.it/search?sourceid=navclient&hl=it&ie=UTF-8&oe=UTF-8&
q=god+is+a+deejay"; // test value
// $HTTP_REFERRER =
"
http://search.virgilio.it/search/cgi/search.cgi?qs=god+is+a+deejay&f=hv
&switch=0&offset=0&hits=10"; // test value
// $HTTP_REFERRER =
"
http://www.altavista.com/web/results?q=god+is+a+deejay&kgs=1&kls=1&avkw
=aapt"; // test value
$parse_url = parse_url ($HTTP_REFERRER);
$engines = array ("google" => "q", "
altavista.com
" => "q",
"
search.virgilio.it
" => "qs"); // to configure
$keywords = "";
if (isset ($parse_url["query"]) && isset ($parse_url["host"]))
{
	$query = $parse_url["query"];
	$host = strtolower ($parse_url["host"]);
	parse_str ($query, $parse_str);
	foreach ($engines as $engine => $field) 
	{
		$pos = strpos($host, $engine); 
		if ($pos !== false)
		{
			if (isset ($parse_str[$field]))
			{ $keywords = urldecode ($parse_str[$field]); }
			break;			
		}	 
	} 
}
if ($keywords != "")
{ print ("Referrer keywords:" . $keywords); }
else
{ print ("Referrer keywords not founded"); }
?>


 Ah, l'impegno, a voi giovani manca proprio:
Per completezza:
http://digilander.libero.it/setecastronomy/creferrer.class.zip


> Ah, l'impegno, a voi giovani manca proprio:
Ai giovani...   :-)
Non è detto che funziona su tutti i motori di ricerca, ne ho testati una
ventina
cmq è possibile aggiungere nuovi criteri nell' array $from[]
<?
 function search_engine_vars ($k, $z=""){
$rep_str='';
$from = array('q=','p=','query=','qwederr=','qs=');
$to_first = "&";
foreach ($from as $kx => $v){
$rep_str .= '(['.$to_first.'\?]?'.$v.').[^'.$to_first.']+'.$to_first.'|';
}
$rep_str = $rep_str.'very_linkley_parameter_oaewfhisadkvizcv';
    $k2 = preg_replace ("/^.*($rep_str).*\$/",  "\\1",      $k );
    $fc = preg_replace ("/^.*=(.*.)&\$/",  "\\1",      $k2 );
  $U = ereg_replace ("(\+)+",  " ",      $fc );
     $U = eregi_replace("(%C3%B6)|(%f6)",   "ö", $U);
  $U = eregi_replace("(%fc)|(%C3%BC)", "ü", $U );
  $U = eregi_replace("(%e4)",  "ä",      $U);
     $W = trim          ( $U );
  if (ereg("%22",$W)){ $W = str_replace("%22",'"',$W)." è il testo da te
ricercato";}
elseif(ereg("^http",$W)){$W ="sei sicuramente  un mio amico, oppure hai
cliccato su un link trovato in rete";}
return $W;
}
echo search_engine_vars($HTTP_REFERER, "<optional_Par>");
?>

per correttezza ho testato il tuo script, la classe non l' ho
provata perchè immagino ne sia il derivato,
cmq bisogna adattarlo ad ogni motore di ricerca altrimenti
nisba.
avevo usato anch' io il urldecoder(), ma con i caratteri speciali
mi mostra parole del tipo Ã¶ oppure Ã?
per il momento ho adattato solo i caratteri ä ö ü

 nisba.
La classe e' configurata con 24 motori di ricerca nazionali ed
internazionali tra i principali identificati da
http://www.motoridiricerca.it



Appunto hai duvuto adattare la classe ad ogni motore di ricerca
era proprio questo che volevo evitare
cmq ti ringrazio per averti fatto perdere tempo, la classe che hai scritto,
spero non solo per me, un' ottimo lavoro, mi č piaciuta molto
ciao