Страница 1 из 2

Вырезать некоторые символы

Добавлено: 06 апр 2011, 19:59
ukhov
http://site.ru/hh/uu/ee/xxxxxxx
Теперь вопрос - как из этого вынуть "xxxxxxx"?

Re: Вырезать некоторые символы

Добавлено: 06 апр 2011, 20:15
Deniska
Суть не ясна. Удалить просто не получаеться?

Re: Вырезать некоторые символы

Добавлено: 06 апр 2011, 20:17
ukhov
Deniska писал(а):Суть не ясна. Удалить просто не получаеться?
неправильно выразился. надо извлечь значение $xxx из http://site.ru/hh/uu/ee/$xxx
Это, например, извлекает домен из url'а

Код: Выделить всё

<?php// get host name from URLpreg_match('@^(?:http://)?([^/]+)@i',    "http://www.php.net/index.html", $matches);$host = $matches[1]; // get last two segments of host namepreg_match('/[^.]+\.[^.]+$/', $host, $matches);echo "domain name is: {$matches[0]}\n";?>

Re: Вырезать некоторые символы

Добавлено: 06 апр 2011, 20:20
Deniska
файл $xxx текстовый?

Re: Вырезать некоторые символы

Добавлено: 06 апр 2011, 20:29
ukhov
Deniska писал(а):файл $xxx текстовый?

Re: Вырезать некоторые символы

Добавлено: 06 апр 2011, 20:30
ukhov
Deniska писал(а):файл $xxx текстовый?
Вот есть код

Код: Выделить всё

$url = 'http://site.ru/hh/uu/ee/5gtrg55f'
Надо извлечь "5gtrg55f".

Re: Вырезать некоторые символы

Добавлено: 06 апр 2011, 20:41
Deniska
Не уверен , но кажись так.

Код: Выделить всё

<?phppreg_match('@^(?:http://site.ru/hh/uu/ee/)?([^/]+)@i',    "http://site.ru/hh/uu/ee/5gtrg55f", $matches);$host = $matches[1];preg_match('/[^.]+\.[^.]+$/', $host, $matches);echo "ответ: {$matches[0]}\n";?>

Re: Вырезать некоторые символы

Добавлено: 06 апр 2011, 20:44
ukhov
Deniska писал(а):Не уверен , но кажись так.

Код: Выделить всё

<?phppreg_match('@^(?:http://site.ru/hh/uu/ee/)?([^/]+)@i',    "http://site.ru/hh/uu/ee/5gtrg55f", $matches);$host = $matches[1];preg_match('/[^.]+\.[^.]+$/', $host, $matches);echo "ответ: {$matches[0]}\n";?>
я вот точно-точно также 10 минут назад пробовал, и сейчас повторил, ничего не выводит кроме "ответ: ".
только я пробовал с url
http://site.ru/hh/uu/ee/5gtrg55f/
потому что там после ? идёт ([^/]+), а это значит, что должен быть ещё один слэш

Re: Вырезать некоторые символы

Добавлено: 06 апр 2011, 20:48
Deniska
В чём проблема? Слэш убираем-ответ получаем.

Re: Вырезать некоторые символы

Добавлено: 06 апр 2011, 20:51
Deniska
Вот правильный код, только что проверил

Код: Выделить всё

<?phppreg_match('@^(?:http://site.ru/hh/uu/ee/)?([^/]+)@i',    "http://site.ru/hh/uu/ee/5gtrg55f", $matches);$host = $matches[1];preg_match('/[^.]+$/', $host, $matches);echo "ответ: {$matches[0]}\n";?>