本文整理汇总了PHP中Piwik\Common::getSearchEngineUrls方法的典型用法代码示例。如果您正苦于以下问题:PHP Common::getSearchEngineUrls方法的具体用法?PHP Common::getSearchEngineUrls怎么用?PHP Common::getSearchEngineUrls使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Piwik\Common
的用法示例。
在下文中一共展示了Common::getSearchEngineUrls方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getSearchEngineUrlFromUrlAndKeyword
/**
* Return search engine URL for URL and keyword
*
* @see core/DataFiles/SearchEnginges.php
*
* @param string $url Domain name, e.g., search.piwik.org
* @param string $keyword Keyword, e.g., web+analytics
* @return string URL, e.g., http://search.piwik.org/q=web+analytics
*/
function getSearchEngineUrlFromUrlAndKeyword($url, $keyword)
{
if ($keyword === API::LABEL_KEYWORD_NOT_DEFINED) {
return 'http://piwik.org/faq/general/#faq_144';
}
$searchEngineUrls = Common::getSearchEngineUrls();
$keyword = urlencode($keyword);
$keyword = str_replace(urlencode('+'), urlencode(' '), $keyword);
$path = @$searchEngineUrls[getSearchEngineHostPathFromUrl($url)][2];
if (empty($path)) {
return false;
}
$path = str_replace("{k}", $keyword, $path);
return $url . (substr($url, -1) != '/' ? '/' : '') . $path;
}
示例2: extractSearchEngineInformationFromUrl
/**
* Extracts a keyword from a raw not encoded URL.
* Will only extract keyword if a known search engine has been detected.
* Returns the keyword:
* - in UTF8: automatically converted from other charsets when applicable
* - strtolowered: "QUErY test!" will return "query test!"
* - trimmed: extra spaces before and after are removed
*
* Lists of supported search engines can be found in /core/DataFiles/SearchEngines.php
* The function returns false when a keyword couldn't be found.
* eg. if the url is "http://www.google.com/partners.html" this will return false,
* as the google keyword parameter couldn't be found.
*
* @see unit tests in /tests/core/Common.test.php
* @param string $referrerUrl URL referrer URL, eg. $_SERVER['HTTP_REFERER']
* @return array|bool false if a keyword couldn't be extracted,
* or array(
* 'name' => 'Google',
* 'keywords' => 'my searched keywords')
*/
public static function extractSearchEngineInformationFromUrl($referrerUrl)
{
$referrerParsed = @parse_url($referrerUrl);
$referrerHost = '';
if (isset($referrerParsed['host'])) {
$referrerHost = $referrerParsed['host'];
}
if (empty($referrerHost)) {
return false;
}
// some search engines (eg. Bing Images) use the same domain
// as an existing search engine (eg. Bing), we must also use the url path
$referrerPath = '';
if (isset($referrerParsed['path'])) {
$referrerPath = $referrerParsed['path'];
}
// no search query
if (!isset($referrerParsed['query'])) {
$referrerParsed['query'] = '';
}
$query = $referrerParsed['query'];
// Google Referrers URLs sometimes have the fragment which contains the keyword
if (!empty($referrerParsed['fragment'])) {
$query .= '&' . $referrerParsed['fragment'];
}
$searchEngines = Common::getSearchEngineUrls();
$hostPattern = self::getLossyUrl($referrerHost);
/*
* Try to get the best matching 'host' in definitions
* 1. check if host + path matches an definition
* 2. check if host only matches
* 3. check if host pattern + path matches
* 4. check if host pattern matches
* 5. special handling
*/
if (array_key_exists($referrerHost . $referrerPath, $searchEngines)) {
$referrerHost = $referrerHost . $referrerPath;
} elseif (array_key_exists($referrerHost, $searchEngines)) {
// no need to change host
} elseif (array_key_exists($hostPattern . $referrerPath, $searchEngines)) {
$referrerHost = $hostPattern . $referrerPath;
} elseif (array_key_exists($hostPattern, $searchEngines)) {
$referrerHost = $hostPattern;
} elseif (!array_key_exists($referrerHost, $searchEngines)) {
if (!strncmp($query, 'cx=partner-pub-', 15)) {
// Google custom search engine
$referrerHost = 'google.com/cse';
} elseif (!strncmp($referrerPath, '/pemonitorhosted/ws/results/', 28)) {
// private-label search powered by InfoSpace Metasearch
$referrerHost = 'wsdsold.infospace.com';
} elseif (strpos($referrerHost, '.images.search.yahoo.com') != false) {
// Yahoo! Images
$referrerHost = 'images.search.yahoo.com';
} elseif (strpos($referrerHost, '.search.yahoo.com') != false) {
// Yahoo!
$referrerHost = 'search.yahoo.com';
} else {
return false;
}
}
$searchEngineName = $searchEngines[$referrerHost][0];
$variableNames = null;
if (isset($searchEngines[$referrerHost][1])) {
$variableNames = $searchEngines[$referrerHost][1];
}
if (!$variableNames) {
$searchEngineNames = Common::getSearchEngineNames();
$url = $searchEngineNames[$searchEngineName];
$variableNames = $searchEngines[$url][1];
}
if (!is_array($variableNames)) {
$variableNames = array($variableNames);
}
$key = null;
if ($searchEngineName === 'Google Images' || $searchEngineName === 'Google' && strpos($referrerUrl, '/imgres') !== false) {
if (strpos($query, '&prev') !== false) {
$query = urldecode(trim(self::getParameterFromQueryString($query, 'prev')));
$query = str_replace('&', '&', strstr($query, '?'));
}
$searchEngineName = 'Google Images';
//.........这里部分代码省略.........