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


PHP IPSLib::buildFurlTemplates方法代码示例

本文整理汇总了PHP中IPSLib::buildFurlTemplates方法的典型用法代码示例。如果您正苦于以下问题:PHP IPSLib::buildFurlTemplates方法的具体用法?PHP IPSLib::buildFurlTemplates怎么用?PHP IPSLib::buildFurlTemplates使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IPSLib的用法示例。


在下文中一共展示了IPSLib::buildFurlTemplates方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: _getTidFromUrl

 /**
  * Takes an input url and extracts the topic id
  *
  * @return	integer		Topic id
  */
 protected function _getTidFromUrl()
 {
     /* Try to intval the url */
     if (!intval($this->request['topic_url'])) {
         /* Friendly URL */
         if ($this->settings['use_friendly_urls']) {
             /* remove base url from url */
             $this->request['topic_url'] = str_replace($this->settings['_original_base_url'], '', $this->request['topic_url']);
             $this->request['topic_url'] = str_replace(array('/index.php/', '/index.php?/'), '/', $this->request['topic_url']);
             $templates = IPSLib::buildFurlTemplates();
             preg_match($templates['showtopic']['in']['regex'], $this->request['topic_url'], $match);
             $old_id = intval(trim($match[1]));
         } else {
             preg_match('/(\\?|&)(t|showtopic)=(\\d+)($|&)/', $this->request['topic_url'], $match);
             $old_id = intval(trim($match[3]));
         }
     } else {
         $old_id = intval($this->request['topic_url']);
     }
     return $old_id;
 }
开发者ID:mover5,项目名称:imobackup,代码行数:26,代码来源:moderate.php

示例2: _checkForFurl

 /**
  * Try and deconstruct the link if it's a FURRY FURL
  *
  * @access	protected
  * @param	string		Incoming URL
  * @return	array		Array of request data or false
  */
 protected function _checkForFurl($url)
 {
     $_urlBits = array();
     $_toTest = $url;
     $templates = array();
     if (is_file(FURL_CACHE_PATH)) {
         $templates = array();
         require FURL_CACHE_PATH;
         /*noLibHook*/
         $_seoTemplates = $templates;
     } else {
         /* Attempt to write it */
         $_seoTemplates = IPSLib::buildFurlTemplates();
         try {
             IPSLib::cacheFurlTemplates();
         } catch (Exception $e) {
         }
     }
     if (is_array($_seoTemplates) and count($_seoTemplates)) {
         foreach ($_seoTemplates as $key => $data) {
             if (empty($data['in']['regex'])) {
                 continue;
             }
             if (preg_match($data['in']['regex'], $_toTest, $matches)) {
                 if (is_array($data['in']['matches'])) {
                     foreach ($data['in']['matches'] as $_replace) {
                         $k = IPSText::parseCleanKey($_replace[0]);
                         if (strpos($_replace[1], '$') !== false) {
                             $v = IPSText::parseCleanValue($matches[intval(str_replace('$', '', $_replace[1]))]);
                         } else {
                             $v = IPSText::parseCleanValue($_replace[1]);
                         }
                         $_urlBits[$k] = $v;
                     }
                 }
                 if (strpos($_toTest, $_seoTemplates['__data__']['varBlock']) !== false) {
                     $_parse = substr($_toTest, strpos($_toTest, $_seoTemplates['__data__']['varBlock']) + strlen($_seoTemplates['__data__']['varBlock']));
                     $_data = explode($_seoTemplates['__data__']['varSep'], $_parse);
                     $_c = 0;
                     foreach ($_data as $_v) {
                         if (!$_c) {
                             $k = IPSText::parseCleanKey($_v);
                             $v = '';
                             $_c++;
                         } else {
                             $v = IPSText::parseCleanValue($_v);
                             $_c = 0;
                             $_urlBits[$k] = $v;
                         }
                     }
                 }
                 break;
             }
         }
         //-----------------------------------------
         // If using query string furl, extract any
         // secondary query string.
         // Ex: http://localhost/index.php?/path/file.html?key=value
         // Will pull the key=value properly
         //-----------------------------------------
         $_qmCount = substr_count($_toTest, '?');
         if ($_qmCount > 1) {
             $_secondQueryString = substr($_toTest, strrpos($_toTest, '?') + 1);
             $_secondParams = explode('&', $_secondQueryString);
             if (count($_secondParams)) {
                 foreach ($_secondParams as $_param) {
                     list($k, $v) = explode('=', $_param);
                     $k = IPSText::parseCleanKey($k);
                     $v = IPSText::parseCleanValue($v);
                     $_urlBits[$k] = $v;
                 }
             }
         }
         /* Process URL bits for extra ? in them */
         if (is_array($_urlBits) and count($_urlBits)) {
             foreach ($_urlBits as $k => $v) {
                 if (strstr($v, '?')) {
                     list($rvalue, $more) = explode('?', $v);
                     if ($rvalue and $more) {
                         /* Reset key with correct value */
                         $_v = $rvalue;
                         $_urlBits[$k] = $_v;
                         /* Now add in the other value */
                         if (strstr($more, '=')) {
                             list($_k, $_v) = explode('=', $more);
                             if ($_k and $_v) {
                                 $_urlBits[$_k] = $_v;
                             }
                         }
                     }
                 }
             }
         }
//.........这里部分代码省略.........
开发者ID:ConnorChristie,项目名称:GrabViews,代码行数:101,代码来源:links.php

示例3: init

 protected static function init()
 {
     if (is_file(FURL_CACHE_PATH)) {
         $templates = array();
         require FURL_CACHE_PATH;
         /*noLibHook*/
         self::$_seoTemplates = $templates;
     } else {
         /* Attempt to write it */
         self::$_seoTemplates = IPSLib::buildFurlTemplates();
         try {
             IPSLib::cacheFurlTemplates();
         } catch (Exception $e) {
         }
     }
 }
开发者ID:mover5,项目名称:imobackup,代码行数:16,代码来源:sitemapgenerator.php

示例4: _fUrlInit

 /**
  * INIT furls
  * Performs set up and figures out any incoming links
  *
  * @return	@e void
  */
 protected static function _fUrlInit()
 {
     /**
      * Fix request uri
      */
     self::_fixRequestUri();
     if (ipsRegistry::$settings['use_friendly_urls']) {
         /* Grab and store accessing URL */
         self::$_uri = preg_replace("/s=(&|\$)/", '', str_replace('/?', '/' . IPS_PUBLIC_SCRIPT . '?', $_SERVER['REQUEST_URI']));
         $_urlBits = array();
         /* Grab FURL data... */
         if (!IN_DEV and is_file(FURL_CACHE_PATH)) {
             $templates = array();
             include FURL_CACHE_PATH;
             /*noLibHook*/
             self::$_seoTemplates = $templates;
         } else {
             /* Attempt to write it */
             self::$_seoTemplates = IPSLib::buildFurlTemplates();
             try {
                 IPSLib::cacheFurlTemplates();
             } catch (Exception $e) {
             }
         }
         if (is_array(self::$_seoTemplates) and count(self::$_seoTemplates)) {
             $uri = $_SERVER['REQUEST_URI'] ? $_SERVER['REQUEST_URI'] : @getenv('REQUEST_URI');
             /* Bug 21295 - remove known URL from test URI */
             $_t = !empty(ipsRegistry::$settings['board_url']) ? @parse_url(ipsRegistry::$settings['board_url']) : @parse_url(ipsRegistry::$settings['base_url']);
             $_toTest = ($_t['path'] and $_t['path'] != '/') ? preg_replace("#^{$_t['path']}#", '', $uri) : str_replace($_t['scheme'] . '://' . $_t['host'], '', $uri);
             $_404Check = $_toTest;
             //We want to retain any /index.php for this test later in this block of code
             $_toTest = str_ireplace(array('//' . IPS_PUBLIC_SCRIPT . '?', '/' . IPS_PUBLIC_SCRIPT . '?', '/' . IPS_PUBLIC_SCRIPT), '', $_toTest);
             $_gotMatch = false;
             foreach (self::$_seoTemplates as $key => $data) {
                 if (empty($data['in']['regex'])) {
                     continue;
                 }
                 /* Clean up regex */
                 $data['in']['regex'] = str_replace('#{__varBlock__}', preg_quote(self::$_seoTemplates['__data__']['varBlock'], '#'), $data['in']['regex']);
                 if (preg_match($data['in']['regex'], $_toTest, $matches)) {
                     $_gotMatch = true;
                     /* Handling pages as a special thing? */
                     if ($data['isPagesMode']) {
                         if (strstr($_toTest, self::$_seoTemplates['__data__']['varPage'])) {
                             preg_match('#(' . preg_quote(self::$_seoTemplates['__data__']['varPage'], '#') . '(\\d+?))(?:$|' . preg_quote(self::$_seoTemplates['__data__']['varBlock'], '#') . ')#', $_toTest, $pageMatches);
                             if ($pageMatches[1]) {
                                 $k = 'page';
                                 $_GET[$k] = intval($pageMatches[2]);
                                 $_POST[$k] = intval($pageMatches[2]);
                                 $_REQUEST[$k] = intval($pageMatches[2]);
                                 $_urlBits[$k] = intval($pageMatches[2]);
                                 ipsRegistry::$request[$k] = intval($pageMatches[2]);
                                 $_toTest = str_replace($pageMatches[1], '', $_toTest);
                             }
                         } else {
                             /* Redirect all < 3.4 links to the new sexy awesome format if need be */
                             if (self::$_seoTemplates['__data__']['varBlock'] != '/page__' && $uri && strstr($uri, '/page__')) {
                                 preg_match('#(.*)(page__.*)$#', $uri, $matches);
                                 $url = $matches[1];
                                 $query = $matches[2];
                                 $newQuery = '?';
                                 $data = explode('__', substr($query, 6));
                                 for ($i = 0, $j = count($data); $i < $j; $i++) {
                                     $newQuery .= ($i % 2 == 0 ? '&' : '=') . $data[$i];
                                 }
                                 /* Class output not created here */
                                 header("HTTP/1.1 301 Moved Permanently");
                                 header("Location: " . $_t['scheme'] . '://' . $_t['host'] . $url . $newQuery);
                                 exit;
                             }
                         }
                     }
                     if (is_array($data['in']['matches'])) {
                         foreach ($data['in']['matches'] as $_replace) {
                             $k = IPSText::parseCleanKey($_replace[0]);
                             if (strpos($_replace[1], '$') !== false) {
                                 $v = IPSText::parseCleanValue($matches[intval(str_replace('$', '', $_replace[1]))]);
                             } else {
                                 $v = IPSText::parseCleanValue($_replace[1]);
                             }
                             $_GET[$k] = $v;
                             $_POST[$k] = $v;
                             $_REQUEST[$k] = $v;
                             $_urlBits[$k] = $v;
                             ipsRegistry::$request[$k] = $v;
                         }
                     }
                     if (strpos($_toTest, self::$_seoTemplates['__data__']['varBlock']) !== false) {
                         /* Changed how the input variables are parsed based on feedback in bug report 24907
                            @link http://community.invisionpower.com/tracker/issue-24907-member-list-pagination-not-work-with-checkbox
                            Input variables now preserve array depth properly as a result */
                         $_parse = substr($_toTest, strpos($_toTest, self::$_seoTemplates['__data__']['varBlock']) + strlen(self::$_seoTemplates['__data__']['varBlock']));
                         $_data = explode(self::$_seoTemplates['__data__']['varSep'], $_parse);
                         $_query = '';
//.........这里部分代码省略.........
开发者ID:ConnorChristie,项目名称:GrabViews,代码行数:101,代码来源:ipsRegistry.php

示例5: _getTidFromUrl

 /**
  * Takes an input url and extracts the topic id
  *
  * @access	private
  * @return	integer		Topic id
  */
 private function _getTidFromUrl()
 {
     /* Try to intval the url */
     if (!intval($this->request['topic_url'])) {
         /* Friendly URL */
         if ($this->settings['use_friendly_urls']) {
             $templates = IPSLib::buildFurlTemplates();
             preg_match($templates['showtopic']['in']['regex'], $this->request['topic_url'], $match);
             $old_id = intval(trim($match[1]));
         } else {
             preg_match("/(\\?|&amp;)(t|showtopic)=(\\d+)(\$|&amp;)/", $this->request['topic_url'], $match);
             $old_id = intval(trim($match[3]));
         }
     } else {
         $old_id = intval($this->request['topic_url']);
     }
     return $old_id;
 }
开发者ID:dalandis,项目名称:Visualization-of-Cell-Phone-Locations,代码行数:24,代码来源:moderate.php


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