[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Создать короткую url в динамике выборки из таблицы
Страницы: 1, 2, 3, 4, 5
killer8080
вот это будет полезно почитать
http://web.archive.org/web/20120704104127/...c4447c8b5f7cab9
skolozhabskiy
не понял а каким образом вы получаете вывод новости с id = 55 - http://example.com/news/55 вывод новости с id 55

по вашему алгоритму я не понимаю как можно это сделать или там чего-то не хватает?

спасибо
skolozhabskiy
если бы я не читал этой ссылки, то не смог бы сделал то что вы уже видели, просто тема для меня совершенно новая и я не до конца могу понять некоторые нюансы, кк например вы получаете в вашем коде http://example.com/news/55 вывод новости с id 55

спасибо
killer8080
Цитата (skolozhabskiy @ 19.03.2013 - 21:45)
не понял а каким образом вы получаете вывод новости с id = 55 - http://example.com/news/55 вывод новости с id 55

по вашему алгоритму я не понимаю как можно это сделать или там чего-то не хватает?

фронт контроллер (index.php) подключает контроллер, который отвечает за вывод новостей inc/news.php. Он в свою очередь берет из $request[1] ид нужной новости и выводит её, если там пусто, выводит перечень всех новостей например. Это лишь упрощенный пример реализации.
skolozhabskiy
я понял, мы просто думаем о разных вариантах использования получаемых с помощью $_GET['request'].

вы мне объясняете как использовать, чтобы вывести нужную страницу, возможно с каким-то параметрами, а мне нужно эти данные вставить в функцию и вывести результат обработки скрипта php в шаблон. при этом у меня при клике на ссылку я получаю сейчас строку типа:

http://www.mydomain.com/?cart=0&promo=yes&category=92&id=586

а спрашивал как сократить ее до

http://www.mydomain.com/9/586

сейчас я могу получить данные 9/586 в $_GET['request'] и я могу их просто передать в функцию как параметры?

в этом есть логика, но как убрать из адресной строки символы которые я приводил как пример ранее, в адресной строке нет http://www.mydomain.com/9/586, а между параметрами еще масса символов

спасибо

killer8080
Цитата (skolozhabskiy @ 19.03.2013 - 22:00)
сейчас я могу получить данные 9/586 в $_GET['request'] и я могу их просто передать в функцию как параметры?

да
Цитата (skolozhabskiy @ 19.03.2013 - 22:00)
в этом есть логика, но как убрать из адресной строки символы которые я приводил как пример ранее, в адресной строке нет http://www.mydomain.com/9/586, а между параметрами еще масса символов

ну так а зачем выводить кривые ссылки? В каком виде нужно так их и формировать. Я не пойму в чем проблема?
Игорь_Vasinsky
человек просто не понимает как это работает.

он видел функции на ирбисе - для построения урлов, видел htaccess - но не как не может понят - почему это работает.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
skolozhabskiy
так в этом то и проблема как вывести такой вот url

http://www.mydomain.com/9/586

вместо

http://www.mydomain.com/?a%3A2%3A%7Bi%3A0%...201"%3B%7D

спасибо
killer8080
Цитата (skolozhabskiy @ 19.03.2013 - 22:17)
так в этом то и проблема как вывести такой вот url 

http://www.mydomain.com/9/586

вместо

http://www.mydomain.com/?a%3A2%3A%7Bi%3A0%...201"%3B%7D

ну предположительно так user posted image
echo 'http://www.mydomain.com/9/586';
Игорь_Vasinsky
тебе нужно написать функцию - которая из одной строки сделает другую.

или взять на ирбисе.

<?php

/**
* Function of formation of GET-parametres
* Функция формирования GET-параметров
*/

function href()
{
global $GET; // Объявляем массив $GET, сформированный ранее, глобальным
$tmp = $GET; //Переписываем переменную, что бы не влиять на глобальный массив
$href = '';
$arg = func_get_args(); // Получаем массив аргументов переданных в функцию href(тут_вот)

if($arg[0] == 'host') // Это для того, что бы сделать ссылку без параметров
return IRB_HOST;

foreach($arg as $var) // Перебираем полученные аргументы
{
$param = explode('=', $var); // Разделяем имя переменной и значение (page=gallery, например)

// Если в массиве $GET ($tmp) есть ключ, полученный выше (в данном случае 'page')

if(array_key_exists($param[0], $tmp))
$tmp[$param[0]] = $param[1]; // То этому ключу присваиваем полученное значение
else
die('The variable <b>'. $param[0] .'</b> is not defined'); // Иначе...
}

$cnt = array_flip(array_keys($tmp)); // обрезаем те параметры, которые не передавались в аргумент
$tmp = array_slice($tmp, 0, $cnt[$param[0]] + 1);

foreach($tmp as $var => $val) // Теперь поочередно вставляем значения из $GET ($tmp) в ссылку
if(IRB_REWRITE == 'on')
$href .= '/'. $val; // Если реврайт включен, через слэш
elseif(!empty($val))
$href .= '&'. $var .'='. $val; // Если нет = обычные GET параметры


if(IRB_REWRITE == 'on')
return IRB_HOST . trim($href, '/');
else
return
IRB_HOST .'?'. trim($href, '&');
}


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.