Guest User

functions_seo.php

a guest
Sep 14th, 2013
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 11.00 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4.  * Zhou Yanqin add this for URL Rewriting
  5.  * for replace all links in output buffer
  6.  *
  7.  * @param string $s the input string
  8.  * @return string output string with changed url
  9.  * @author Zhou Yanqin <[email protected]>
  10.  */
  11. function replace_for_mod_rewrite($s) {
  12.     global $phpEx, $config;
  13.     //only for front-end
  14.     if (isset($HTTP_SERVER_VARS['REQUEST_URI'])) {
  15.         $path = $HTTP_SERVER_VARS['REQUEST_URI'];
  16.     } else {
  17.         $path = getenv('REQUEST_URI');
  18.     }
  19.     if (strstr($path, "adm/")) {
  20.         return $s;
  21.     }
  22. if ($config['simple_seo_title'] == 0) {
  23.    
  24.     $urlin = array(
  25. "/\.\/index.php\"/i",
  26. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=previous\"/i",
  27. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=next\"/i",
  28. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
  29. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
  30. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)start=([0-9]*)\"/i",
  31. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)\"/i",
  32. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)start=([0-9]*)\"/i",
  33. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
  34. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)start=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
  35. //"/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)p=([0-9]*)&(?:amp;)hilit=([^&]*)#p([0-9]*)\"/i",
  36. //"/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)hilit=([^&]*)\"/i",
  37. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)start=([0-9]*)\"/i",
  38. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
  39. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)start=([0-9]*)\"/i",
  40. "/viewforum.$phpEx\?f=([0-9]*)\"/i",
  41. "/viewforum.$phpEx\"/i",
  42. //"/index.php\?sid=[a-z0-9]{32}\"/i",
  43. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=previous&(?:amp;)sid=[a-z0-9]{32}\"/i",
  44. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=next&(?:amp;)sid=[a-z0-9]{32}\"/i",
  45. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
  46. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)p=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}#p([0-9]*)\"/i",
  47. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
  48. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}\"/i",
  49. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
  50. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)sid=[a-z0-9]{32}\"/i",
  51. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)start=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)sid=[a-z0-9]{32}\"/i",
  52. //"/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)p=([0-9]*)&(?:amp;)hilit=([^&]*)#p([0-9]*)\"/i",
  53. //"/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)hilit=([^&]*)\"/i",
  54. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
  55. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)start=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}\"/i",
  56. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)sid=[a-z0-9]{32}\"/i",
  57. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
  58. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}\"/i",
  59. "/viewforum.$phpEx\?sid=[a-z0-9]{32}\"/i"
  60. );
  61. /**
  62.  * http://localhost/phpbb3/viewforum.php?f=1
  63.  * forum1.html
  64.  * http://localhost/phpbb3/viewtopic.php?f=1&t=4153
  65.  * ftopic4153.html
  66.  * http://localhost/phpbb3/viewtopic.php?f=1&t=4153&start=15
  67.  * ftopic4153-15.html
  68.  * http://localhost/phpbb3/viewtopic.php?f=1&t=4153&p=47937#p47937
  69.  * ltopic4153-47937.html#p47937
  70.  * http://localhost/phpbb3/viewtopic.php?f=23&p=46038#p46038
  71.  * no match-ups, ltopic46038.html#p46038
  72.  * http://localhost/phpbb3/viewforum.php?f=1&start=0
  73.  * no match-ups, forum1-0.html
  74.  * http://localhost/phpbb3/viewforum.php?f=1&st=0&sk=t&sd=d&start=60
  75.  * no match-ups, forum1-0-t-d-60.html
  76.  * http://localhost/phpbb3/viewtopic.php?f=1&t=1215&st=0&sk=a&sd=d&start=300
  77.  * no match-ups, ftopic1-1215-0-a-d-300.html
  78.  * http://localhost/phpbb3/viewforum.php?f=1&st=0&sk=t&sd=d
  79.  * no match-ups, forum1-0-t-d.html
  80.  * http://localhost/phpbb3/viewtopic.php?f=1&t=3504&st=0&sk=t&sd=a
  81.  * no match-ups, ftopic1-3504-0-t-a.html
  82.  * http://localhost/phpbb3/viewtopic.php?f=1&t=4030&view=previous
  83.  * ptopic4030.html
  84.  * http://localhost/phpbb3/viewtopic.php?f=1&t=4030&view=next
  85.  * ntopic4030.html
  86.  * http://localhost/phpbb3/viewtopic.php?f=1&t=4153&start=0&st=0&sk=t&sd=a
  87.  * no match-ups, ftopic1-4153-0-0-t-a.html
  88.  * http://localhost/phpbb3/viewtopic.php?f=1&t=2194&p=22499&hilit=%E5%BE%B7%E5%9B%BD#p22499
  89.  * no match-ups, stopic1-2194-22499-%E5%BE%B7%E5%9B%BD.html, still researshing
  90.  * http://localhost/phpbb3/viewtopic.php?f=1&t=2194&hilit=%E5%BE%B7%E5%9B%BD
  91.  * no match-ups, stopic1-2194-%E5%BE%B7%E5%9B%BD.html, still researching
  92.  *
  93.  */
  94.  
  95. $urlout = array(
  96. 'forums.html"',
  97. 'ptopic\\2.html"',
  98. 'ntopic\\2.html"',
  99. 'ltopic\\2-\\3.html#p\\3"',
  100. 'ltopic\\3.html#p\\3"',
  101. 'ftopic\\2-\\3.html"',
  102. 'ftopic\\2.html"',
  103. 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
  104. 'ftopic\\1-\\2-\\3-\\4-\\5.html"',
  105. 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
  106. //'stopic\\1-\\2-\\3-\\4.html#p\\3"',
  107. //'stopic\\1-\\2-\\3.html"',
  108. 'forum\\1-\\2-\\3-\\4-\\5.html"',
  109. 'forum\\1-\\2-\\3-\\4.html"',
  110. 'forum\\1-\\2.html"',
  111. 'forum\\1.html"',
  112. 'viewforum.php"',
  113. 'forums.html"',
  114. 'ptopic\\2.html"',
  115. 'ntopic\\2.html"',
  116. 'ltopic\\2-\\3.html#p\\3"',
  117. 'ltopic\\3.html#p\\3"',
  118. 'ftopic\\2-\\3.html"',
  119. 'ftopic\\2.html"',
  120. 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
  121. 'ftopic\\1-\\2-\\3-\\4-\\5.html"',
  122. 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
  123. //'stopic\\1-\\2-\\3-\\4.html#p\\3"',
  124. //'stopic\\1-\\2-\\3.html"',
  125. 'forum\\1-\\2-\\3-\\4-\\5.html"',
  126. 'forum\\1-\\2-\\3-\\4-\\5.html"',
  127. 'forum\\1-\\2-\\3-\\4.html"',
  128. 'forum\\1-\\2.html"',
  129. 'forum\\1.html"',
  130. 'forum.html"'
  131. );
  132. } else {
  133. $urlin = array(
  134. "/\.\/index.$phpEx\"/i",
  135. "/\.\/index.$phpEx\?sid=[a-z0-9]{32}\"/i",
  136. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=previous\"/i",
  137. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=next\"/i",
  138. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
  139. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
  140. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)start=([0-9]*)\"/i",
  141. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)\" class=\"topictitle\">([^<]+)<\/a>/e",
  142. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)start=([0-9]*)\"/i",
  143. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
  144. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)start=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
  145. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)start=([0-9]*)\"/i",
  146. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
  147. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)start=([0-9]*)\"/i",
  148. "/viewforum.$phpEx\?f=([0-9]*)\"([a-zA-Z \"=]*)>([^<]+)<\/a>/e",
  149. "/viewforum.$phpEx\"/i",
  150.  
  151. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=previous&(?:amp;)sid=[a-z0-9]{32}\"/i",
  152. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=next&(?:amp;)sid=[a-z0-9]{32}\"/i",
  153. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
  154. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)p=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}#p([0-9]*)\"/i",
  155. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
  156. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}\" class=\"topictitle\">([^<]+)<\/a>/e",
  157. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
  158. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)sid=[a-z0-9]{32}\"/i",
  159. "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)start=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)sid=[a-z0-9]{32}\"/i",
  160. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
  161. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)start=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}\"/i",
  162. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
  163. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
  164. "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}\"([a-zA-Z \"=]*)>([^<]+)<\/a>/e",
  165. "/viewforum.$phpEx\?sid=[a-z0-9]{32}\"/i"
  166. );
  167.  
  168. $urlout = array(
  169. 'forums.html"',
  170. 'forums.html"',
  171. 'ptopic\\2.html"',
  172. 'ntopic\\2.html"',
  173. 'ltopic\\2-\\3.html#p\\3"',
  174. 'ltopic\\3.html#p\\3"',
  175. 'ftopic\\2-\\3.html"',
  176. "'ftopic\\2_'.replace_title_for_mod_rewrite('\\3').'.html\" class=\"topictitle\">\\3</a>'",
  177. 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
  178. 'ftopic\\1-\\2-\\3-\\4-\\5.html"',
  179. 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
  180. 'forum\\1-\\2-\\3-\\4-\\5.html"',
  181. 'forum\\1-\\2-\\3-\\4.html"',
  182. 'forum\\1-\\2.html"',
  183. "'forum\\1_'.replace_title_for_mod_rewrite('\\3').'.html\"\\2>\\3</a>'",
  184. 'forum.html"',
  185.  
  186. 'ptopic\\2.html"',
  187. 'ntopic\\2.html"',
  188. 'ltopic\\2-\\3.html#p\\3"',
  189. 'ltopic\\3.html#p\\3"',
  190. 'ftopic\\2-\\3.html"',
  191. "'ftopic\\2_'.replace_title_for_mod_rewrite('\\3').'.html\" class=\"topictitle\">\\3</a>'",
  192. 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
  193. 'ftopic\\1-\\2-\\3-\\4-\\5.html"',
  194. 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
  195. 'forum\\1-\\2-\\3-\\4-\\5.html"',
  196. 'forum\\1-\\2-\\3-\\4-\\5.html"',
  197. 'forum\\1-\\2-\\3-\\4.html"',
  198. 'forum\\1-\\2.html"',
  199. "'forum\\1_'.replace_title_for_mod_rewrite('\\3').'.html\"\\2>\\3</a>'",
  200. 'forum.html"'
  201. );
  202. }
  203.  
  204. $s = preg_replace($urlin, $urlout, $s);
  205. return $s;
  206. }
  207.  
  208. function replace_title_for_mod_rewrite($title)
  209. {
  210.     $string = trim(str_replace(array('Re:', 're:'), '', $title));
  211.     $find = array('?', '#', '%', '?', '^', '.', '/', ' ', '_', ')', '(', '[', ']', ':', ',', '{', '}');
  212.     $string = str_replace($find, '-', censor_text($string));
  213.     $string = str_replace(array('---', '--'), '-', $string);
  214.    
  215.     return utf8_clean_string($string);
  216. }
  217. ?>
Advertisement
Add Comment
Please, Sign In to add comment