Обрезание URL

SiMM

Новичок
Не можешь регулярками - делай без них - отрежь всё, что правее самого правого слэша - строковых функций должно хватить.
 

kabachok

Новичок
посмотрел parse_url () во втором случае он не помогает
2 SiMM как определить последни слэш?
 

WP

^_^
PHP:
echo preg_replace('~[^/]+$~','','http://test.ru/test/index.php');
// [url]http://test.ru/test/[/url]
Случайно не паучка кодим-с? )
 

WP

^_^
SelenIT
Ой) Надо почаще спать)

-~{}~ 15.08.06 00:33:

п.с. надо бы еще проверку сделать, чтобы он http://test.ru не отрезал до http://
 

kabachok

Новичок
PHP:
$url=str_replace('http://','',$url);

$url=preg_replace('~(?<=/)[^/]+$~','',$url);

if (!preg_match('#^http[s]?:\/\/#i', $url))
{
$url = 'http://' . $url;
}
наверно прокатит
 

WP

^_^
PHP:
$url = 'http://test.ru';
$a = parse_url($url);
$a['path'] = isset($a['path'])?preg_replace('~[^/]+$~','',$a['path']):'';
$url = (isset($a['scheme'])?$a['scheme']:'').'://'.(isset($a['host'])?$a['host']:'').$a['path'];
echo $url;
// http://test.ru/123/bla => http://test.ru/123/
// http://test.ru => http://test.ru
Вариант, думаю, не самый лучший, но рабочий.
 

kabachok

Новичок
а мой хуже? он же тоже работает

-~{}~ 15.08.06 01:11:

PHP:
$url=str_replace('http://','',$url); 

$url=preg_replace('~(?<=/)[^/]+$~','',$url); 

$url = 'http://' . $url;
 

WP

^_^
PHP:
function kaba4ok($arg)
{
 $url = $arg;
 $url = str_replace('http://','',$url); 
 $url = preg_replace('~(?<=/)[^/]+$~','',$url); 
 $url = 'http://'.$url;
 return $url;
}
function wp($arg)
{
 $url = $arg;
 $a = parse_url($url);
 $a['path'] = isset($a['path'])?preg_replace('~(?<=[\\/])[^\\/]+$~','',$a['path']):'';
 $url = (isset($a['scheme'])?$a['scheme'].'://':'').(isset($a['host'])?$a['host']:'').$a['path'];
 return $url;
}
foreach (array(
'something',
'https://megasecurehost/path/to/document.html',
'http://phpclub.ru/talk/showthread.php?s=&postid=640583#post640583',
'hehe/'
) as $arg)
{
 echo $arg.' -> '.wp($arg).'; '.kaba4ok($arg)."\n";
}
/*something -> something; http://something
https://megasecurehost/path/to/document.html -> https://megasecurehost/path/to/; http://https://megasecurehost/path/to/
http://phpclub.ru/talk/showthread.php?s=&postid=640583#post640583 -> http://phpclub.ru/talk/; http://phpclub.ru/talk/
hehe/ -> hehe/; http://hehe/
*/
 

kabachok

Новичок
моя делает всё что мне нужно.
т.е. третий пример

но спасибо, ваши $arg меня убедили :)

-~{}~ 15.08.06 01:31:

благо на случай 1 и 4 примера у меня работает отдельная проверка.
 

WP

^_^
Navarro
Сникерсни.
PHP:
$STR = 'http://phpclub.ru';
echo substr($STR,0,strrpos($STR,'/')); 
// http:/
-~{}~ 15.08.06 02:31:

p.s. или это такой одесский анекдот?
 

Navarro

Новичок
Ок. Кому нужно, тот пару строк под себя допишет.
А ты пока поразвлекайся с https:// и ftp://
P.S. Надеюсь за оверквотинг тебя не забанят.
 
Сверху