Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Генерирование ЧПУ для записи

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не могу разобраться с генерированием чпу из названия записи
vanicon
Отправлено: 26 Декабря, 2010 - 18:39:36
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Нужно сгенирировать чпу для записи по ее названию, вот состряпал вот такую функцию:
PHP:
скопировать код в буфер обмена
  1.  
  2. function slug_encode($text) {
  3. $text = strtolower($text);
  4. $Symbols = array(
  5. "а" => "a","б" => "b","в" => "v", "г" => "g","д" => "d", "е" => "e","ё" => "eo", "ж" => "j","з" => "z","и" => "i","й" => "ii", "к" => "k","л" => "l", "м" => "m","н" => "n", "о" => "o","п" => "p", "р" => "r","с" => "s", "т" => "t","у" => "u", "ф" => "f","х" => "x", "ц" => "c","ч" => "ch", "ш" => "sh","щ" => "h", "ъ" => "","ы" => "yu", "ь" => "","э" => "ie", "ю" => "iu","я" => "ia"," " => "-"
  6. );
  7. $text = strtr("$text", $Symbols);
  8. return $text;
  9. }
  10.  
  11.  
  12.  
  13. function slug_encode2($text) {
  14. $slugsql = mysql_query("SELECT id FROM post WHERE slug = '".slug_encode($text)."'");
  15. $slug = mysql_fetch_array($slugsql);
  16. if($slug['id'] <> null){
  17. $slug_return = slug_encode($text).'1';
  18. }
  19. else{
  20. $slug_return = slug_encode($text);
  21. }
  22. echo $slug_return;
  23. }
  24.  
  25. slug_encode2('Название заголовка');
  26.  

В базе данных в таблице post и в поле slug хранится эта чпу ссылка, а id в таблице post значение уникальное.
И все нормально работает но вот если в базе данных существует уже slug с добавленной единицей то этот slug повторится чего мне как раз и не нужно


-----
Так было, так есть и так будет
 
 Top
JustUserR
Отправлено: 27 Декабря, 2010 - 20:25:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




vanicon пишет:
То этот slug повторится чего мне как раз и не нужно
В качестве допустимого решения преполагаемой вами задачи возможно использование дополнительного уникального ключа для заданного поля управления постоянным URL-адресом - кроме того для обеспечения создания гарантированного различных постоянных адресов возможно использования таких элементов как дата из создания


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB