Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Zhou Yanqin add this for URL Rewriting
- * for replace all links in output buffer
- *
- * @param string $s the input string
- * @return string output string with changed url
- * @author Zhou Yanqin <[email protected]>
- */
- function replace_for_mod_rewrite($s) {
- global $phpEx, $config;
- //only for front-end
- if (isset($HTTP_SERVER_VARS['REQUEST_URI'])) {
- $path = $HTTP_SERVER_VARS['REQUEST_URI'];
- } else {
- $path = getenv('REQUEST_URI');
- }
- if (strstr($path, "adm/")) {
- return $s;
- }
- if ($config['simple_seo_title'] == 0) {
- $urlin = array(
- "/\.\/index.php\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=previous\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=next\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)start=([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)\"/i",
- "/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",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
- "/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",
- //"/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)p=([0-9]*)&(?:amp;)hilit=([^&]*)#p([0-9]*)\"/i",
- //"/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)hilit=([^&]*)\"/i",
- "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)start=([0-9]*)\"/i",
- "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
- "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)start=([0-9]*)\"/i",
- "/viewforum.$phpEx\?f=([0-9]*)\"/i",
- "/viewforum.$phpEx\"/i",
- //"/index.php\?sid=[a-z0-9]{32}\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=previous&(?:amp;)sid=[a-z0-9]{32}\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=next&(?:amp;)sid=[a-z0-9]{32}\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)p=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}#p([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}\"/i",
- "/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",
- "/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",
- "/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",
- //"/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)p=([0-9]*)&(?:amp;)hilit=([^&]*)#p([0-9]*)\"/i",
- //"/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)hilit=([^&]*)\"/i",
- "/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",
- "/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",
- "/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",
- "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
- "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}\"/i",
- "/viewforum.$phpEx\?sid=[a-z0-9]{32}\"/i"
- );
- /**
- * http://localhost/phpbb3/viewforum.php?f=1
- * forum1.html
- * http://localhost/phpbb3/viewtopic.php?f=1&t=4153
- * ftopic4153.html
- * http://localhost/phpbb3/viewtopic.php?f=1&t=4153&start=15
- * ftopic4153-15.html
- * http://localhost/phpbb3/viewtopic.php?f=1&t=4153&p=47937#p47937
- * ltopic4153-47937.html#p47937
- * http://localhost/phpbb3/viewtopic.php?f=23&p=46038#p46038
- * no match-ups, ltopic46038.html#p46038
- * http://localhost/phpbb3/viewforum.php?f=1&start=0
- * no match-ups, forum1-0.html
- * http://localhost/phpbb3/viewforum.php?f=1&st=0&sk=t&sd=d&start=60
- * no match-ups, forum1-0-t-d-60.html
- * http://localhost/phpbb3/viewtopic.php?f=1&t=1215&st=0&sk=a&sd=d&start=300
- * no match-ups, ftopic1-1215-0-a-d-300.html
- * http://localhost/phpbb3/viewforum.php?f=1&st=0&sk=t&sd=d
- * no match-ups, forum1-0-t-d.html
- * http://localhost/phpbb3/viewtopic.php?f=1&t=3504&st=0&sk=t&sd=a
- * no match-ups, ftopic1-3504-0-t-a.html
- * http://localhost/phpbb3/viewtopic.php?f=1&t=4030&view=previous
- * ptopic4030.html
- * http://localhost/phpbb3/viewtopic.php?f=1&t=4030&view=next
- * ntopic4030.html
- * http://localhost/phpbb3/viewtopic.php?f=1&t=4153&start=0&st=0&sk=t&sd=a
- * no match-ups, ftopic1-4153-0-0-t-a.html
- * http://localhost/phpbb3/viewtopic.php?f=1&t=2194&p=22499&hilit=%E5%BE%B7%E5%9B%BD#p22499
- * no match-ups, stopic1-2194-22499-%E5%BE%B7%E5%9B%BD.html, still researshing
- * http://localhost/phpbb3/viewtopic.php?f=1&t=2194&hilit=%E5%BE%B7%E5%9B%BD
- * no match-ups, stopic1-2194-%E5%BE%B7%E5%9B%BD.html, still researching
- *
- */
- $urlout = array(
- 'forums.html"',
- 'ptopic\\2.html"',
- 'ntopic\\2.html"',
- 'ltopic\\2-\\3.html#p\\3"',
- 'ltopic\\3.html#p\\3"',
- 'ftopic\\2-\\3.html"',
- 'ftopic\\2.html"',
- 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
- 'ftopic\\1-\\2-\\3-\\4-\\5.html"',
- 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
- //'stopic\\1-\\2-\\3-\\4.html#p\\3"',
- //'stopic\\1-\\2-\\3.html"',
- 'forum\\1-\\2-\\3-\\4-\\5.html"',
- 'forum\\1-\\2-\\3-\\4.html"',
- 'forum\\1-\\2.html"',
- 'forum\\1.html"',
- 'viewforum.php"',
- 'forums.html"',
- 'ptopic\\2.html"',
- 'ntopic\\2.html"',
- 'ltopic\\2-\\3.html#p\\3"',
- 'ltopic\\3.html#p\\3"',
- 'ftopic\\2-\\3.html"',
- 'ftopic\\2.html"',
- 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
- 'ftopic\\1-\\2-\\3-\\4-\\5.html"',
- 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
- //'stopic\\1-\\2-\\3-\\4.html#p\\3"',
- //'stopic\\1-\\2-\\3.html"',
- 'forum\\1-\\2-\\3-\\4-\\5.html"',
- 'forum\\1-\\2-\\3-\\4-\\5.html"',
- 'forum\\1-\\2-\\3-\\4.html"',
- 'forum\\1-\\2.html"',
- 'forum\\1.html"',
- 'forum.html"'
- );
- } else {
- $urlin = array(
- "/\.\/index.$phpEx\"/i",
- "/\.\/index.$phpEx\?sid=[a-z0-9]{32}\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=previous\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=next\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)start=([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)\" class=\"topictitle\">([^<]+)<\/a>/e",
- "/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",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
- "/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",
- "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)&(?:amp;)start=([0-9]*)\"/i",
- "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
- "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)start=([0-9]*)\"/i",
- "/viewforum.$phpEx\?f=([0-9]*)\"([a-zA-Z \"=]*)>([^<]+)<\/a>/e",
- "/viewforum.$phpEx\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=previous&(?:amp;)sid=[a-z0-9]{32}\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)view=next&(?:amp;)sid=[a-z0-9]{32}\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)p=([0-9]*)#p([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)p=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}#p([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
- "/viewtopic.$phpEx\?f=([0-9]*)&(?:amp;)t=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}\" class=\"topictitle\">([^<]+)<\/a>/e",
- "/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",
- "/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",
- "/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",
- "/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",
- "/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",
- "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)st=([0-9]*)&(?:amp;)sk=([a-zA-Z]*)&(?:amp;)sd=([a-zA-Z]*)\"/i",
- "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}&(?:amp;)start=([0-9]*)\"/i",
- "/viewforum.$phpEx\?f=([0-9]*)&(?:amp;)sid=[a-z0-9]{32}\"([a-zA-Z \"=]*)>([^<]+)<\/a>/e",
- "/viewforum.$phpEx\?sid=[a-z0-9]{32}\"/i"
- );
- $urlout = array(
- 'forums.html"',
- 'forums.html"',
- 'ptopic\\2.html"',
- 'ntopic\\2.html"',
- 'ltopic\\2-\\3.html#p\\3"',
- 'ltopic\\3.html#p\\3"',
- 'ftopic\\2-\\3.html"',
- "'ftopic\\2_'.replace_title_for_mod_rewrite('\\3').'.html\" class=\"topictitle\">\\3</a>'",
- 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
- 'ftopic\\1-\\2-\\3-\\4-\\5.html"',
- 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
- 'forum\\1-\\2-\\3-\\4-\\5.html"',
- 'forum\\1-\\2-\\3-\\4.html"',
- 'forum\\1-\\2.html"',
- "'forum\\1_'.replace_title_for_mod_rewrite('\\3').'.html\"\\2>\\3</a>'",
- 'forum.html"',
- 'ptopic\\2.html"',
- 'ntopic\\2.html"',
- 'ltopic\\2-\\3.html#p\\3"',
- 'ltopic\\3.html#p\\3"',
- 'ftopic\\2-\\3.html"',
- "'ftopic\\2_'.replace_title_for_mod_rewrite('\\3').'.html\" class=\"topictitle\">\\3</a>'",
- 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
- 'ftopic\\1-\\2-\\3-\\4-\\5.html"',
- 'ftopic\\1-\\2-\\3-\\4-\\5-\\6.html"',
- 'forum\\1-\\2-\\3-\\4-\\5.html"',
- 'forum\\1-\\2-\\3-\\4-\\5.html"',
- 'forum\\1-\\2-\\3-\\4.html"',
- 'forum\\1-\\2.html"',
- "'forum\\1_'.replace_title_for_mod_rewrite('\\3').'.html\"\\2>\\3</a>'",
- 'forum.html"'
- );
- }
- $s = preg_replace($urlin, $urlout, $s);
- return $s;
- }
- function replace_title_for_mod_rewrite($title)
- {
- $string = trim(str_replace(array('Re:', 're:'), '', $title));
- $find = array('?', '#', '%', '?', '^', '.', '/', ' ', '_', ')', '(', '[', ']', ':', ',', '{', '}');
- $string = str_replace($find, '-', censor_text($string));
- $string = str_replace(array('---', '--'), '-', $string);
- return utf8_clean_string($string);
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment