Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Склейка урлов
 
 автор: okey   (17.07.2007 в 01:14)   письмо автору
 
 

Подскажыте есть ли функции или библиотеки для логической склепки урлов.

Например:
http://site.ru/ -- page/index.php >> http://site.ru/page/index.php
http://site.ru/ -- index.php>> http://site.ru/index.php
http://site.ru/page/ -- /page2/index.php >> http://site.ru/page/page2/index.php

http://site.ru/page/ -- ../index.php >> http://site.ru/index.php



наперед спасибо

   
 
 автор: Unkind   (17.07.2007 в 02:13)   письмо автору
 
   для: okey   (17.07.2007 в 01:14)
 

У Вас есть обе части URL'а? Какие проблемы? Символ конкатенции в PHP - "." (точка):
<?php
$url 
$part1 $part2;
?>

   
 
 автор: Петр   (17.07.2007 в 07:06)   письмо автору
 
   для: okey   (17.07.2007 в 01:14)
 

Если необходимо отредактировать строки перед "склейкой" воспользуйтесь функцией substr_replace ( string string, string replacement, int start [, int length] )

   
 
 автор: Trianon   (17.07.2007 в 09:53)   письмо автору
 
   для: okey   (17.07.2007 в 01:14)
 

parse_url()
pathinfo()
realpath()
Конкатенация строк (либо подстановка переменных)

2Петр: и никаких substr_replace. В общем случае вы понятия не имеете, в каком месте substr найдет тот или иной шаблон поиска.

   
 
 автор: Okey   (17.07.2007 в 15:02)   письмо автору
 
   для: Trianon   (17.07.2007 в 09:53)
 

А как в таком случае делать

http://site.ru/page/xxx/ -- ../../index.php >> http://site.ru/index.php

   
 
 автор: Trianon   (17.07.2007 в 15:09)   письмо автору
 
   для: Okey   (17.07.2007 в 15:02)
 

разобрать URL на составляющие.
сцепить путь из URL и второй (относительный) путь
применить realpath - получить нормализованный путь.
собрать URI из составляющих.

Впрочем, realpath похоже работает в контексте файловой системы сервера...
Ну тогда значит еще DOCUMENT_ROOT дописать придется.

   
 
 автор: Unkind   (17.07.2007 в 15:14)   письмо автору
 
   для: Trianon   (17.07.2007 в 15:09)
 

Не DOCUMENT_ROOT, а http://site.ru

   
 
 автор: Trianon   (17.07.2007 в 15:16)   письмо автору
 
   для: Unkind   (17.07.2007 в 15:14)
 

если бы...

   
 
 автор: Unkind   (17.07.2007 в 15:18)   письмо автору
 
   для: Trianon   (17.07.2007 в 15:16)
 

Ну а при чем тут DOCUMENT_ROOT вообще? :)

   
 
 автор: Trianon   (17.07.2007 в 15:21)   письмо автору
 
   для: Unkind   (17.07.2007 в 15:18)
 

============
Описание
string realpath ( string path )


realpath() раскрывает все символические ссылки, переходы типа '/./', '/../' и лишние символы '/' в пути path, возвращая канонизированный абсолютный путь к файлу. В этом пути не будет символических ссылок и компонентов типа '/./' или '/../'.

realpath() возвращает FALSE при неудаче, например если файл не существует
==============

Отсюда можно сделать вывод, что realpath не просто комбинирует куски имен каталогов но и обращается к файловой системе.
Корень файловой системы живет в DOCUMENT_ROOT.

[ Если разбирается сервер отличный от собственного, задача вырождается в кражу контента и становится мне неинтересной. :) ]

   
 
 автор: Unkind   (17.07.2007 в 15:32)   письмо автору
 
   для: Trianon   (17.07.2007 в 15:21)
 

Если разбирается сервер отличный от собственного, задача вырождается в кражу контента и становится мне неинтересной.
Вероятнее всего, но есть вообще вещь, из-за которой такое приходится делать (URL сформировывать, а не воровать контент).

   
 
 автор: Trianon   (17.07.2007 в 15:39)   письмо автору
 
   для: Unkind   (17.07.2007 в 15:32)
 

Для этого случая, вероятно, придется руками написать функцию, нормализующую путь.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования