保存 Google 个搜索查询并正确处理
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。
所有排序现在它抓取查询部分并将其写入文件。但是我无法让它工作,因为脚本之后的页面没有显示,并且 sitemap.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]);
}
}
在构建 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。
所有排序现在它抓取查询部分并将其写入文件。但是我无法让它工作,因为脚本之后的页面没有显示,并且 sitemap.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]);
}
}