Personligt ville jeg nok gøre noget i retning af:
$search=false;
if(isset($_SERVER['HTTP_REFERER']) && substr($_SERVER['HTTP_REFERER'],0,7)=='http://')
{
// Finder det første q=
$start=strpos($_SERVER['HTTP_REFERER'],'q=');
// Finder det efterfølgende &
$end=strpos($_SERVER['HTTP_REFERER'],'&',$start);
// Hvis der ikke var noget &, så er resten af url'en en del af søgningen
if(!$end)
{
$end=strlen($_SERVER['HTTP_REFERER']); // Check lige efter om der er off-by-one fejl her..
}
$search=rawurldecode(substr($_SERVER['HTTP_REFERER'],$start,$end-$start));
}
// .....
if($search)
{
print('Du søgte vel ikke efter "'.htmlentities($search).'" på google lige før?');
}
.. Men om det virker for dig, det må du selv vurdere
En anden måde, med explode:
function parse_url_query($string)
{
$query_parts=explode('&',$string);
$query=array();
while(list(,$foo)=each($query_parts))
{
list($name,$value)=explode($foo);
$query[rawurldecode($name)]=rawurldecode($value);
}
return($query);
}
$search=false;
if(isset($_SERVER['HTTP_REFERER']) && substr($_SERVER['HTTP_REFERER'],0,7)=='http://')
{
$url=parse_url($_SERVER['HTTP_REFERER']);
// Kom lige i tanker om at vi skal checke om det er google der refererer
if(strpos($url['host'],'google'))
{
$query=parse_url_query($url['query']);
if(isset($query['q']))
{
$search=$query['q'];
}
}
}
// ...
if($search)
{
print('Du søgte vel ikke efter "'.htmlentities($search).'" på google lige før?');
}
Jeg har ikke testet dem, men i teorien burde de virke.
--
Thus, I conclude
[Redigeret d. 26/09-04 02:12:03 af XyborX]