Şimdi ben mod-rewrite kullanmak benim çağrı PHP fonksiyonu ile yardıma ihtiyacı

1 Cevap php

Burada aşağıda benim çağrı kodundan bir parça olan, şimdi şaşırıp, bu kısmı şimdi çok daha önce mod-rewrite kullanmak benim bütün siteyi değişen duyuyorum çünkü çağrı bağlantıları için, bu şimdiye kadar gerçekten harika çalıştı URL oluşturur bir sayfa aşağıdaki gibi olacaktır

http://localhost/?p=mail.inbox&page=2

ve şimdi ben bu böyle .. ben zaten bunu yapmak için regex sahip olmak istiyorum ama benim çağrı doğru yeni URL bağlantıları kurar şeklini değiştirmek gerekir

http://localhost/mail/inbox/page/2

Burada ESKİ bağlantıları, ben yeni bağlantılar için kullanabileceğiniz konusunda herhangi bir yardım ya da fikirler yapar kodu nedir?

yakalamak artık çalışıyor yolu diğer değişkenler URL varsa bunu belirleyebilir ve bunları bulunuyor görürseniz emin örneğin mi? p = test ve, yeni bir sayfa bağlantıları yaparken URL yapar onları tutar yapacak olduğunu o kılan yeni url tüm ekstra şeyler tutmak için emin olun ve sadece sayfa sayısını artırmak ya da azaltmak olacaktır userid = 2 & color = green & page = 3

$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.
}

1 Cevap

Bu hile yapacak

$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;
}

What the code is doing here is removing the /page/2 part from the uri if it exists and then you can modify the code as you want.
You mentioned that the code works if /page/1 part is not in the URI so removing that part if it exists should work too.