保存谷歌搜索查询并正确处理


Saving Google search queries and getting it right

在构建Web应用程序时,我需要将引荐来源网址Google搜索查询保存到文件中,然后回显它们。

到目前为止,我尝试过的事情是:

function write_to_file($q)
{$filename = 'sitemap.dat';
$fh = fopen($filename, "a");
if(flock($fh, LOCK_EX))
{fwrite($fh, $q);
flock($fh, LOCK_UN);}
fclose($fh);}
$ref = $_SERVER['HTTP_REFERER'];
if(strstr($ref, "http://")){
if(strstr($ref, "google.com")){
  //echo $ref;  
  $regex ='/q=(.+?)&/';
  preg_match($regex, $ref, $query);
    $user_query = ''.$query[1].'';
write_to_file($user_query);
 }}

首先简化上面的代码,它创建一个函数将文本保存到文件中,然后查找引用,检查它是否未https然后检查它是否 google.com。

现在全部排序,它获取查询部分并将其写入文件。但是我无法让它工作,因为脚本后的页面没有显示,并且站点地图.dat中没有保存任何内容。

另外,如果我删除文件功能,它会回显search%20query,这是我想要的。

看看这个。

function write_to_file($q=''){
    if($q==='') return false;
    $fh = fopen('sitemap.dat', "a");
    if(flock($fh, LOCK_EX)){
        fwrite($fh, $q."'n");
        flock($fh, LOCK_UN);
    }
    fclose($fh);
    echo 'done';
}
$ref = (isset($_SERVER['HTTP_REFERER'])) ? $_SERVER['HTTP_REFERER'] : '';
if(strstr($ref, "http://www.google.co")){
    preg_match('/q=(.+)&?/', $ref, $query);
    if(count($query)>1){
        write_to_file($query[1]);
    }
}