当前位置: 首页>>代码示例>>PHP>>正文


PHP Common::getSearchEngineUrls方法代码示例

本文整理汇总了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;
}
开发者ID:carriercomm,项目名称:piwik,代码行数:24,代码来源:functions.php

示例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';
//.........这里部分代码省略.........
开发者ID:CaptainSharf,项目名称:SSAD_Project,代码行数:101,代码来源:UrlHelper.php


注:本文中的Piwik\Common::getSearchEngineUrls方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。