Реклама на сайте Advertise with us

Программеры Хелп плиззз

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Old Oil Barrel

С нами с 09.09.04
Сообщения: 58531
Рейтинг: 14265


Передовик Master-X (16.07.2005) Передовик Master-X (16.10.2005) Передовик Master-X (01.12.2006) Передовик Master-X (01.03.2007) Передовик Master-X (16.03.2007) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 02/02/05 в 14:57       Ответить с цитатойцитата 

Создание самогенирирущейся ссылки
Возможно ли такое сделать на java или на php

Есть url, например, mydonen.ru/cat1/1/
нужно подставить скрипт который брал урл, отбрасывал последнюю папку и ставил линк на следующую папку.
Т.е. например:
находимся на mydonen.ru/cat1/1/ он выдает ссылку на mydonen.ru/cat1/2/
находимся на mydonen.ru/cat1/3/ он выдает ссылку на mydonen.ru/cat1/4/
находимся на mydonen.ru/cat2/1/ он выдает ссылку на mydonen.ru/cat2/2/

Помогите пожалуйста...

Последний раз редактировалось: Sergeyka (02/02/05 в 15:13), всего редактировалось 2 раз(а)

Правило буравчика

0
 



С нами с 27.10.04
Сообщения: 7
Рейтинг: 3

Ссылка на сообщениеДобавлено: 02/02/05 в 15:04       Ответить с цитатойцитата 

хм... насколько я понял проблему, просто изменяешь неадер на пхп типа

Header("location:$link");

хотя муть какая-то выходит...

1
 



С нами с 07.01.04
Сообщения: 2868
Рейтинг: 1536

Ссылка на сообщениеДобавлено: 02/02/05 в 15:17       Ответить с цитатойцитата 

Код:

<?
$str = "www.mydonen.ru/cat1/3/";
$url = explode ("/", $str);
$url[count ($url)-2]++;
echo implode('/', $url);
?>


Если я тебя правильно понял.

.

1
 

Клева

С нами с 07.02.04
Сообщения: 12781
Рейтинг: 3531

Ссылка на сообщениеДобавлено: 02/02/05 в 15:21       Ответить с цитатойцитата 

kink писал:
Код:

<?
$str = "www.mydonen.ru/cat1/3/";
$url = explode ("/", $str);
$url[count ($url)-2]++;
echo implode('/', $url);
?>

Если я тебя правильно понял.


Это может быть не обязательно cat1, может бы ть и cat2 и cat3

0
 



С нами с 07.01.04
Сообщения: 2868
Рейтинг: 1536

Ссылка на сообщениеДобавлено: 02/02/05 в 15:26       Ответить с цитатойцитата 

densa писал:
Это может быть не обязательно cat1, может бы ть и cat2 и cat3


В данном случае роли не играет. Или cat1 должен стать cat2?

.

1
 

Клева

С нами с 07.02.04
Сообщения: 12781
Рейтинг: 3531

Ссылка на сообщениеДобавлено: 02/02/05 в 15:48       Ответить с цитатойцитата 

kink писал:
В данном случае роли не играет. Или cat1 должен стать cat2?


нет категория должна остаться таже самая, но код должен быть универсальным для всех категорий так как он вставляется только 1 раз в файл общий для всех категорий

0
 



С нами с 11.12.04
Сообщения: 99
Рейтинг: -344

Ссылка на сообщениеДобавлено: 02/02/05 в 17:05       Ответить с цитатойцитата 

Есть такой вариант:
Код:

$url = getenv('SCRIPT_NAME');
$host = getenv('SERVER_NAME');

$a = explode('/',$url);
$a[count($a)-2]++;
$a[count($a)-1] = "";
$url = 'http://'.$host.implode('/',$a);

echo "<a href=$url> next.. </a>";

1
 



С нами с 02.07.04
Сообщения: 521
Рейтинг: 524

Ссылка на сообщениеДобавлено: 02/02/05 в 17:38       Ответить с цитатойцитата 

Так рано или поздно скрипт доходит до несуществующего каталога
http://www.mydonen.ru/cat1/X/ и само собой выпадет в 404

1
 

Клева

С нами с 07.02.04
Сообщения: 12781
Рейтинг: 3531

Ссылка на сообщениеДобавлено: 02/02/05 в 17:55       Ответить с цитатойцитата 

dej@vu писал:
Есть такой вариант:
Код:

$url = getenv('SCRIPT_NAME');
$host = getenv('SERVER_NAME');
$a = explode('/',$url);
$a[count($a)-2]++;
$a[count($a)-1] = "";
$url = 'http://'.$host.implode('/',$a);
echo "<a href=$url> next.. </a>";



большое спасибо, как раз то что нужно.
К тому о чем говорил Urban, можно ли этот скрипт ограничить, что бы он не шел дальше? mydonen.ru/cat1/4/

0
 



С нами с 02.07.04
Сообщения: 521
Рейтинг: 524

Ссылка на сообщениеДобавлено: 02/02/05 в 18:30       Ответить с цитатойцитата 

Заинтересовала задача. еще решение:
Код:
$new_dir=GetNextDir(dirname($_SERVER["PHP_SELF"]));
echo "<a href='".$new_dir."'>".$new_dir."</a>";
function GetNextDir($dir) {
   $dir_pieces = explode("/", $dir);
   $now_dir = array_pop($dir_pieces);
   $base_dir = implode("/", $dir_pieces);
   $flag=0;
   chdir("..");
   if ($dir = @opendir(".")) {
      while (($elem = readdir($dir)) !== false) {
         if ($flag==1) return $base_dir."/".$elem;
         if ((!is_file($elem)) && ($now_dir==$elem)) $flag=1;
      }
      closedir($dir);
   }
   return GetNextDir($base_dir);
}

Для примера начальный подкаталог (http://www.mydonen.ru/cat1/1/)
Эта ф-ция формирует имя следующего подкаталога (http://www.mydonen.ru/cat1/2/).
а если нет "следующего", то возвращет следующий подкаталог на уровень ниже (http://www.mydonen.ru/cat2/), где лежит индекс, который перенаправляет на первый подкаталог в этой категории (например (http://www.mydonen.ru/cat2/1gallery/)

1
 



С нами с 11.12.04
Сообщения: 99
Рейтинг: -344

Ссылка на сообщениеДобавлено: 02/02/05 в 18:36       Ответить с цитатойцитата 

densa писал:
К тому о чем говорил Urban, можно ли этот скрипт ограничить, что бы он не шел дальше? mydonen.ru/cat1/4/


Можно, например так:

Код:

$stop = 4; // Последний раздел

$url = getenv('SCRIPT_NAME');
$host = getenv('SERVER_NAME');
$a = explode('/',$url);
$lc = count($a)-2;
if ($a[$lc]<$stop)
{
   $a[$lc]++;
   $a[$lc+1] = "";
   $url = 'http://'.$host.implode('/',$a);
   echo "<a href=$url> next.. </a>";
}
else
{
   echo "stop";
}

1
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »