PDA

View Full Version : شناسایی کلمه ورودی از گوگل



cpuram
یک شنبه 16 تیر 1392, 22:49 عصر
سلام دوستان
من میخوام وقتی کاربری از گوگل میاد بدونم چی تایپ کردن لطفا کد اونو بگید ممنون.

Tarragon
یک شنبه 16 تیر 1392, 23:24 عصر
سلام
با $_SERVER['HTTP_HTTP_REFERER'] می تونید اینکار رو بکنید.

cpuram
دوشنبه 17 تیر 1392, 00:44 صبح
سلام
با $_SERVER['HTTP_HTTP_REFERER'] می تونید اینکار رو بکنید.
این اشتباه نیست؟ ارور میده.

cpuram
دوشنبه 17 تیر 1392, 00:50 صبح
منظور شما اینه؟

[HTTP_REFERER]
این که لینک رو میده. من کلمه رو میخوام.

cpuram
دوشنبه 17 تیر 1392, 01:01 صبح
آقا متوجه شدم خیلی ممنون. از داخل همون لینکی که نشون میده باید بردارم.

ravand
دوشنبه 17 تیر 1392, 09:10 صبح
با این روش کامترش کنید هم از لحاظ امنیتی و هم از لحاظ سازگاری با فارسی:

$payam=urldecode($_SERVER['HTTP_HTTP_REFERER'] );
$urli=htmlentities($payam, ENT_QUOTES, "UTF-8");

cpuram
دوشنبه 17 تیر 1392, 12:13 عصر
با این روش کامترش کنید هم از لحاظ امنیتی و هم از لحاظ سازگاری با فارسی:

$payam=urldecode($_SERVER['HTTP_HTTP_REFERER'] );
$urli=htmlentities($payam, ENT_QUOTES, "UTF-8");

HTTP_HTTP_REFERER
کار نمیکنه میشه بگید چیکار باید بکنم؟
اگه کد کامل واسه گوگل رو دارید ممنون میشم بدید.
این تابع چیکار مینه؟

function ec_get_query($query) {
if ( strpos( $query, "google." ) ) {
$pattern = '/^.*\/search\?.*q=(.*)$/';
} elseif ( strpos( $query, "msn." ) || strpos( $query, "live" ) ) {
$pattern = '/^.*q=(.*)$/';
} elseif ( strpos( $query, "yahoo." ) ) {
$pattern = '/^.*[\?&]p=(.*)$/';
} elseif ( strpos( $query, "ask." ) ) {
$pattern = '/^.*[\?&]q=(.*)$/';
} else {
return false;
}
preg_match( $pattern, $query, $matches );
$querystr = substr( $matches[1], 0, strpos( $matches[1], '&' ) );
return urldecode($querystr);
}

ravand
دوشنبه 17 تیر 1392, 13:55 عصر
اینو تست کن:

<?php
$payam=urldecode($_SERVER['HTTP_REFERER'] );
echo htmlentities($payam, ENT_QUOTES, "UTF-8");
?>

cpuram
دوشنبه 17 تیر 1392, 15:51 عصر
اینو تست کن:

<?php
$payam=urldecode($_SERVER['HTTP_REFERER'] );
echo htmlentities($payam, ENT_QUOTES, "UTF-8");
?>
کار میکنه ممنون.
حالا چطوری جمله رو از url جدا کنم؟

cpuram
دوشنبه 17 تیر 1392, 17:47 عصر
اینو از یه سایت خارجی پیدا کردم کار میکنه.

<?php

function getKeywords()
{
$refer = parse_url($_SERVER['HTTP_REFERER']);
$host = $refer['host'];
$refer = $refer['query'];

if(strstr($host,'google'))
{
//do google stuff
$match = preg_match('/&q=([a-zA-Z0-9+-]+)/',$refer, $output);
$querystring = $output[0];
$querystring = str_replace('&q=','',$querystring);
$keywords = explode('+',$querystring);
return $keywords;
}
elseif(strstr($host,'yahoo'))
{
//do yahoo stuff
$match = preg_match('/p=([a-zA-Z0-9+-]+)/',$refer, $output);
$querystring = $output[0];
$querystring = str_replace('p=','',$querystring);
$keywords = explode('+',$querystring);
return $keywords;

}
elseif(strstr($host,'msn'))
{
//do msn stuff
$match = preg_match('/q=([a-zA-Z0-9+-]+)/',$refer, $output);
$querystring = $output[0];
$querystring = str_replace('q=','',$querystring);
$keywords = explode('+',$querystring);
return $keywords;
}
else
{
//else, who cares
return false;
}
}

print_r( getKeywords());
?>

cpuram
دوشنبه 17 تیر 1392, 18:12 عصر
ولی کلمات فارسی رو قبول نمیکنه.

cpuram
دوشنبه 17 تیر 1392, 19:22 عصر
'/&q=([a-zA-Z0-9+-]+)/'
عبارت منظم فارسی چی میشه؟

Tarragon
سه شنبه 18 تیر 1392, 08:32 صبح
فکر کنم این جواب بده :
'/&q=([\u0600-\u06FFa-zA-Z0-9+-]+)/'

cpuram
سه شنبه 18 تیر 1392, 10:20 صبح
'/&q=([a-zA-Z0-9%D8%A7%D8%A8%D9%BE%D8%AA%D8%AB%D8%AC%DA%86%E2%80% 8C%D8%AD%D8%AE%D8%AF%D8%B0%D8%B1%D8%B2%E2%80%8C%DA %98%D8%B3%E2%80%8C%D8%B4%D8%B5%D8%B6%D8%B7%D8%B8%D 8%B9%D8%BA%D9%81%D9%82%DA%A9%DA%AF%D9%84%D9%85%D9% 86%D9%88%D9%87%DB%8C+-]+)/'.اینو کشف کردم جواب داد.