First of all I am in DESPERATE need of help here PLEASE I will most likely start a bounty as soon as SO lets me.
Ben oldukça büyük bir site (sosyal ağ) BİRÇOK SAYFALARI ben şu anda bunu inşa etmek için tam bir yeniden-yazma yapıyorum daha sonra 2 yıl önce yaptığı var. Ben değiştirmek için karar verdik 1 şey sitemde URL'ler olduğunu, http://example.com/?p=page-identifier-name and sometimes http://example.com/?p=page-identifier-name&page=2&user=343433 strong> URL ultiple öğelerle nokta olsun, ben şimdi böyle vardı mod_rewrite kullanmak geçiş, ben aslında bunu yaptım, ben tüm site kullanmadan değişti ama ben 1 büyük sorun var
Benim sayfalama fonksiyonu, Bayıldım, bu prev gibi gerçekten güzel Çağrıyı yapan 1 2 - 34 35 36 37-189 190 sonraki veya benzer ve ancak şimdi ben mod-rewrite kullanarak anahtarının olmasını oldukça iyi çalışır, açıkçası benim URL'ler farklı Bana yardım için bakım eğer kolayca bırakabilirsiniz bu yüzden aşağıdaki sayfalama için tam kod girilmezse neden şimdi hangi çağrı cihazı tatili, ben doğru tekrar çalışır hale getirmek için henüz hiçbir şans ile bir kaç şey denedim, yani sayfa ve kendinizi nasıl çalıştığını görmek.
Çağrı kodu şu anda $_GET
daha sonra ikonların bazı sayfalar sitemde sonra diğerleri daha beri, daha sonra doğru ile doğru URL'yi yeniden inşa hepsi aracılığıyla itterates için URL tüm tuşları ve değerleri arar sayfa numarası ve benim çağrı cihazı için ekranda dışarı tükürür. Yani o zaman www.example.com/?p=mail.inbox&page=12 şimdi www.example.com/?mail/inbox/page/12 başka bir sayfa olarak gösterecek yeterli olsa ürün sayfasında ise www.example.com/?p=mail.inbox, www.example.com/mail/inbox, şimdi olduğu gibi bir şey daha sonra olabilir sadece p=page
göstermek ve page=page
sayı bazı sayfalar en user_id ve sıralama tarafından ve sadece differetn şeyler, şimdi sadece güzel ekli şeyimi sahip sakıncası olmaz url ama ben bunu göstermek istiyorum nasıl göstermek istiyorum sayfa numarası gibi şeyler, ben sadece benim çağrı kodu doğru bağlantılar oluşturmak yapmak için yardıma ihtiyaç tüm mod_rewrite ve regex çalışma var. Tüm sayfaları yoluyla işlenmiş olduğundan index.php sayfa gösteren kök klasörü derin sonra asla ama bunu yapan oldukça url var zaman olduğunu düşünerek içine kandırmak belki güzel olurdu dosyası farklı bir klasörde gibi görünüyorsun. example.com / mail / gelen kök düzeyi endeksinde gerçekten olup 2 klasörler derin, gibi bir şey kullanarak çalıştı
$selfurl = $_SERVER["REQUEST_URI"].'/page/'. $pagenumber;
Ben bu bağlantıyı tıklayın olsaydı bu sayfada ise www.example.com/mail/inbox sonra bu belleği bağlantı bu gibi görünmesi olur www.example.com/mail/inbox/page/12, ancak daha sonra yeni çağrı bağlantılar bu {[benzeyecektir (2)]} bu yüzden belli ki çözüm değil, ben gerçekten burada sıkışıp kaldım ve bir çözüm bulamazsanız o zaman ben regex kullanarak çıkın ve bazı gerçekten berbat sayfalama var olacak, ben gerçekten deneyebilirsiniz herkes takdir ediyorum Bana yardım et, ben bir soltion görmek ama mutlaka biri olmak zorunda değilsiniz.
<?PHP
class Paging
{
/*////////////////////////////////////////////////////////////////////////
* Paging Function
* //paging(10000, 50, 4); //number of results / items per page / number of page links in center
* // paging(10000, 50); //or
*/ ///////////////////////////////////////////////////////////////////////
public static function show_paging($total_results, $items_per_page, $adjacents = 3)
{
//$total_results = $reccnt;
//$items_per_page = $pagesize;
// adjacements will determinine how many paging links are in the middle of the outer paging
if ($total_results > $items_per_page) {
// build our link URLs
$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.
}
$prev = $page - 1; //previous page is page - 1
$next = $page + 1; //next page is page + 1
$lastpage = ceil($total_results / $items_per_page); //lastpage is = total_results/ items per page, rounded up.
$lpm1 = $lastpage - 1; //last page minus 1
/*
* Now we apply our rules and draw the pagination object.
* We're actually saving the code to a variable in case we want to draw it more than once.
*/
$pagination = "";
if ($lastpage > 1) {
$pagination .= '<div class="pagingspace"><div class="pager">';
//previous button
if ($page > 1) {
$pagination .= '<a href="' . $selfurl . $prev .
'" title="go to previous page"><span class="page-numbers prev">prev</span></a>';
}
//pages
if ($lastpage < 7 + ($adjacents * 2)) { //not enough pages to bother breaking it up{
for ($counter = 1; $counter <= $lastpage; $counter++) {
if ($counter == $page) {
$pagination .= '<span class="page-numbers current">' . $counter . '</span>';
}
else {
$pagination .= '<a href="' . $selfurl . $counter . '" title="go to page ' . $counter .
'"><span class="page-numbers">' . $counter . '</span></a>';
}
}
}
else {
if ($lastpage > 5 + ($adjacents * 2)) { //enough pages to hide some{
//close to beginning; only hide later pages
if ($page < 1 + ($adjacents * 2)) {
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) {
if ($counter == $page) {
$pagination .= '<span class="page-numbers current">' . $counter . '</span>';
}
else {
$pagination .= '<a href="' . $selfurl . $counter . '" title="go to page ' . $counter .
'"><span class="page-numbers">' . $counter . '</span></a>';
}
}
$pagination .= '<span class="page-numbers dots">…</span>';
$pagination .= '<a href="' . $selfurl . $lpm1 . '" title="go to page ' . $lpm1 .
'"><span class="page-numbers">' . $lpm1 . '</span></a>';
$pagination .= '<a href="' . $selfurl . $lastpage . '" title="go to page ' . $lastpage .
'"><span class="page-numbers">' . $lastpage . '</span></a>';
//in middle; hide some front and some back
}
else {
if ($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) {
$pagination .= '<a href="' . $selfurl .
'1" title="go to page 1"><span class="page-numbers">1</span></a>';
$pagination .= '<a href="' . $selfurl .
'2" title="go to page 2"><span class="page-numbers">2</span></a>';
$pagination .= '<span class="page-numbers dots">…</span>';
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) {
if ($counter == $page) {
$pagination .= '<span class="page-numbers current">' . $counter . '</span>';
}
else {
$pagination .= '<a href="' . $selfurl . $counter . '" title="go to page ' . $counter .
'"><span class="page-numbers">' . $counter . '</span></a>';
}
}
$pagination .= '<span class="page-numbers dots">…</span>';
$pagination .= '<a href="' . $selfurl . $lpm1 . '" title="go to page ' . $lpm1 .
'"><span class="page-numbers">' . $lpm1 . '</span></a>';
$pagination .= '<a href="' . $selfurl . $lastpage . '" title="go to page ' . $lastpage .
'"><span class="page-numbers">' . $lastpage . '</span></a>';
//close to end; only hide early pages
}
else {
$pagination .= '<a href="' . $selfurl .
'1" title="go to page 1"><span class="page-numbers">1</span></a>';
$pagination .= '<a href="' . $selfurl .
'2" title="go to page 2"><span class="page-numbers">2</span></a>';
$pagination .= '<span class="page-numbers dots">…</span>';
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) {
if ($counter == $page) {
$pagination .= '<span class="page-numbers current">' . $counter . '</span>';
}
else {
$pagination .= '<a href="' . $selfurl . $counter . '" title="go to page ' . $counter .
'"><span class="page-numbers">' . $counter . '</span></a>';
}
}
}
}
}
}
//next button
if ($page < $counter - 1) {
$pagination .= '<a href="' . $selfurl . $next .
'" title="go to next page"><span class="page-numbers prev">next</span></a>';
}
else {
$pagination .= '<span class="page-numbers prev">next</span>';
$pagination .= '</div></div>';
}
}
echo '<table width="100%" border="0" cellspacing="0" cellpadding="5" class="paginator">';
echo '<tr><td align="center" height="20" class="black11bold">';
echo $pagination;
echo '</td></tr></table>';
}
}
// converts page number to a start position number for MySQL query
public static function page2db($page, $items_per_page)
{
if ($page) {
$start = ($page - 1) * $items_per_page;
}
else {
$start = 0;
}
return $start;
}
}
?>
Kullanmak için
<?PHP
//to use the paging functions i do something like this
$pagesize = 10;
$start = Paging::page2db($_GET['page'], $pagesize); //page number and items perpage
//the show the pager links
Paging::show_paging($total_count, $pagesize, 4);
?>
UPDATE
I need to figure out a way to get the value from URLs like this and only have the part minus the domain name, so
http://example.com/mail/inbox would only return /mail/inbox this should work on and number of directories and should not return valus like ?var1=something
that are on it, so it should only return the folders that are added onto
a domain the catch is these folders are not real folders, they are created with mod_rewrite in the URL
http://example.com/mail/inbox
http://example.com/forums/category
http://example.com/users/online
http://example.com/users/online/friends
O $_GET
değerlere dayalı URL oluşturur, çünkü ben şimdi mod-rewrite kullanmanız berbat bir PHP çağrı kodu düzeltmek için çalışıyorum, bu ekrana yazdırır bağlantıları yanlıştır, bu işe yaramazsa URL'leri isimleri $_GET
değerleri uyuşmuyor artık olarak
SO, bir URL http://example.com /users/online ya da http://example.com /users/online/page/22 sonra [(0)] {gibi bir değişkenli içine rebuld gerekir ise, gerekirse} ** / users / online / sonra benim çağrı kod adlı sayfası parçası ekleyebilirsiniz.