Я застрял сейчас, вот ниже – это отладка от моего пейджингового кода, это часть, которая строит URL-адрес для пейджинговых ссылок, с тех пор она отлично работала, потому что теперь я меняю весь свой сайт на использование mod-rewrite, поэтому перед страница будет выглядеть так
HTTP: // локальный / р = mail.inbox и страница = 2
и теперь я хочу, чтобы это было так. У меня уже есть регулярное выражение, но мне нужно изменить способ, которым мои поисковые ссылки строят ссылки на новый URL правильно
HTTP: // локальный / почта / Входящие / страница / 2
вот код, который делает ссылки OLD, любую помощь или идеи о том, как я могу использовать для новых ссылок?
теперь он может определить, существуют ли другие переменные в URL-адресе, и если он увидит их, он будет следить за тем, чтобы он сохранял их в URL-адресе, который он делает при создании новых ссылок на страницы, например: p = test & userid = 2 & color = green & page = 3, он обязательно сохранит все лишние вещи в новом URL-адресе и просто увеличит или уменьшит номер страницы
$url_string = "?"; foreach ($_GET as $k => $v) { if ($k != "page") { // <-- the key you don't want, ie "page" if ($url_string != "?") { $url_string .= "&"; // Prepend ampersands nicely } $url_string .= $k . "=" . $v; } } $selfurl = $url_string . '&page='; $page = $_GET['page']; if ($page) { $start = ($page - 1) * $items_per_page; } else { $start = 0; } if ($page == 0) { $page = 1; //if no page var is given, default to 1. }
Это сделает трюк
$uri = $_SERVER['REQUEST_URI']; $uri = preg_replace('#page/\d+/*#', '', $uri); // remove page from uri $uri = preg_replace('#/$#', '', $uri); // remove trailing slash $selfurl = $uri . '/page/'; $page = $_GET['page']; if ($page) { $start = ($page - 1) * $items_per_page; } else { $start = 0; } if ($page == 0) { $page = 1; }
Что здесь делает код, это удаление части / page / 2 из uri, если оно существует, и тогда вы можете изменить код по своему усмотрению.
Вы упомянули, что код работает, если / page / 1 часть не находится в URI, поэтому удаление этой части, если она существует, тоже должна работать.