PHP: Очиститель URL страниц (папок) - PullRequest
2 голосов
/ 02 марта 2011

Привет всем.Поэтому я хочу добиться более чистого URL для моей нумерации страниц.В настоящее время я передаю переменные через GET, перезагружаю ту же страницу и модифицирую запрос.

Я хочу сделать что-то вроде: http://designspiration.net/

Их страницы отображаются в виде папок с соответствующими номерами.Я предполагаю, что они делают это на лету, но я не уверен, как.Не совсем уверен, во что я ввязываюсь, или во что это может быть вовлечено, но я готов принять вызов, поэтому дайте мне знать!

Вот текущий тест, который я настроил и использует $ _GET.Уже помогли с некоторыми онлайн-учебниками, чтобы изложить теорию о нумерации страниц.

<?php
$host = "localhost";
$username = "user";
$password = "pass";
$db_name = "database";
$directory = "/newProject";

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$postsPerPage = 2;
$start = $_GET['start'];
$totalRecords = mysql_num_rows(mysql_query("SELECT * FROM posts"));

if (!$start)
  $start = 0;

$result = mysql_query("SELECT * FROM posts ORDER BY id DESC LIMIT $start, $postsPerPage");

while ($post = mysql_fetch_assoc($result)){
  echo "<span>" ."Title: " .$post['title'] ."</span><br />\n";
  echo "<span>" ."Author: " .$post['author'] ."</span><br />\n";
  echo "<span>" ."Description: " .$post['description'] ."</span><br />\n";
  echo "<a href='full_post.php?id=" .$post['id'] ."'>\n" ."<img src='" .$directory .$post['thumbUrl'] ."' /></a>" ."<br />\n";
  echo "<span>" ."Type: " .$post['type'] ."</span><br />\n";
  echo "<span>" ."Tags: " .$post['tags'] ."</span><br />\n";
  echo "<span>" ."Submitted: " .$post['date'] ."</span><br />\n";
  echo "<span>" ."ID: " .$post['id'] ."</span><br /><br /><br />\n";
}

$prev = $start - $postsPerPage;
$next = $start + $postsPerPage;

//previous button
if (!($start<=0))
  echo "<a href='index.php?start=$prev'>Prev</a> ";

//page numbers
$pageNumbers = 1;

for($x=0;$x<$totalRecords;$x=$x+$postsPerPage){
  if ($start!=$x)
    echo "<a href='index.php?start=$x'> $pageNumbers</a> ";
  else
    echo "<a href='index.php?start=$x'><b> $pageNumbers</b></a> ";
  $pageNumbers++;    
}

//next button
if(!($start>=$totalRecords-$postsPerPage))  
  echo "<a href='index.php?start=$next'>Next</a>";

?>

Мои предположения: я буду помещать переменную POST для моей страницы / mysql_query в новую папку и index.phpкоторый я создаю на лету на основе номера моей страницы ... Я также изучил правило перезаписи .htaccess, которое может изменить URL, однако я новичок в php, пытаюсь учиться, и это похоже на ярлык.

Почтовый индекс, или просто укажите мне правильное направление!Не повезло в поисках.

1 Ответ

1 голос
/ 02 марта 2011

Эй, вы ищете методы маршрутизации, вы можете просто увидеть, как это делают некоторые фреймворки, и реализовать это самостоятельно, или просто использовать фреймворк.Основная предпосылка состоит в том, чтобы перенаправить весь трафик на определенный файл (обычно index.php) в этом файле, проанализировать URI и отделить то, что вы хотите, а затем направить к соответствующему коду.

перенаправить запрос наURL-адрес выполняется через apache mod-rewrite, а затем вы можете выполнить синтаксический анализ.

См. эту документацию, чтобы узнать, как это делает Zend.

удачи

отредактировано, чтобы добавить эту ссылку, которая кажется более читаемой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...