У меня есть код php, который собирает ключевые слова, используемые для перехода на мой сайт с некоторого javascript и сохраняет их в базе данных, все это прекрасно работает, за исключением того, что оно пропускает последнюю букву конец строки ключевого слова, например, если ключевое слово было примером, оно получило бы экзамен.Отсутствие последней буквы от ссылок на ключевые слова
//Get keywords from reffering website
function getReferalHost()
{
$ref = parse_url($_GET['self']);
$refer = $ref['host'];
return $refer;
}
function getKeywords()
{
$refer = str_replace('%2520' , '+' , urlencode($_SERVER['REQUEST_URI']));
$refer = str_replace('%26' , '&', $refer);
$refer = str_replace('%3D' , '=', $refer);
$host_ref = parse_url($_GET['self']);
$host = $host_ref['host'];
if(stristr($host,'google.'))
{
//do google stuff
$match = preg_match('/&q=([a-zA-Z0-9+-]+)/',$refer, $output);
$querystring = $output[0];
$rep = str_replace('&q=','',$querystring);
$querystring = substr($rep , 0 , (strlen($rep) - 1));
$keywords = explode('+',$querystring);
return $keywords;
}
elseif(stristr($host,'yahoo.'))
{
//do yahoo stuff
$match = preg_match('/p=([a-zA-Z0-9+-]+)/',$refer, $output);
$querystring = $output[0];
$rep = str_replace('p=','',$querystring);
$querystring = substr($rep , 0 , (strlen($rep) - 1));
$keywords = explode('+',$querystring);
return $keywords;
}
elseif(stristr($host,'msn.') or stristr($host,'bing.') or stristr($host, 'ask.com'))
{
//do msn stuff
$match = preg_match('/q=([a-zA-Z0-9+-]+)/',$refer, $output);
$querystring = $output[0];
$rep = str_replace('q=','',$querystring);
$querystring = substr($rep , 0 , (strlen($rep) - 1));
$keywords = explode('+',$querystring);
return $keywords;
}
}
define('DELIMITER' , ' ');
$request_uri = getReferalHost();
$keys = getKeywords();
$query_string = "";
foreach($keys as $key){
$query_string .= $key.DELIMITER;
}
Любые предложения были бы высоко оценены.
Благодаря
Lee
спасибо, я дам ему попробовать –
Хорошо я подумал, что было работал, он вернул мне последнее письмо, но то, что он также сделал, - это выгрузить часть переменной в таблицу базы данных, например: q = Youth –
Если вы удалите строку, вам нужно изменить '$ keywords = explode ('+', $ querystring);' to '$ keywords = explode ('+', $ rep);' как @MrCode сказал –