[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите написать функцию!!!
123456
Здравствуйте, помогите пожалуйста написать функцию, которая будет проверять ДОМЕН на валидность!

В регулярках вообще не разбираюсь!

Функция должна проверять введеный домен на валидность, и если введено www. или http://, то должно обрезать их.

Пример:

www.test.ru/ => test.ru
http://www.test.ru/ => test.ru
http://test.ru => test.ru
http://www.тест.рф/ => тест.рф

и т.д.

Буду очень благодарен за помощь!



Спустя 1 час, 19 минут, 59 секунд (15.09.2012 - 11:55) redreem написал(а):
если сайт в UTF-8, то так. если в cp1251, то ненужны перекодирования в начале и в конце функции.

	function clean_url($urlUTF) {

$url = strtolower( iconv('utf-8', 'cp1251', $urlUTF) );

if( $url == '' ) return;

$url = str_replace( "http://", "", $url );
$url = str_replace( "https://", "", $url );

if( substr( $url, 0, 4 ) == 'www.' ) $url = substr( $url, 4 );

$url = explode( '/', $url );
$url = reset( $url );
$url = explode( ':', $url );
$url = reset( $url );

return iconv('cp1251', 'utf-8', $url);

}

Спустя 4 минуты, 12 секунд (15.09.2012 - 12:00) 123456 написал(а):
Спасибо!
А я думал, что только через регулярки это можно сделать

Спустя 16 минут, 3 секунды (15.09.2012 - 12:16) 123456 написал(а):
еще в конце твоей функции надо проверить $url на валидность.

Может кто поможет?

Спустя 6 минут, 11 секунд (15.09.2012 - 12:22) redreem написал(а):
ну в конце можно как раз регулярку задействовать. в нете полно регулярок для проверки домена на валидность.

Спустя 21 минута, 41 секунда (15.09.2012 - 12:43) walerus написал(а):
$array = array( 'www.test.ru', 'http://www.test.ru/', 'http://test.ru', 'http://www.тест.рф/' );
$string = 'http://www.test.ru/';

function getDomen ( $data )
{
if ( is_array( $data ) )
{
$result = array();
foreach( $data as $array_value )
{
$tmp = parse_url( str_replace( 'www.', '', $array_value ) );

if ( isset ( $tmp['scheme'] ) )
$result[] = trim( $tmp['host'] );
else
$result[] = trim( $tmp['path'] );
}

return $result;
}

$tmp = parse_url( str_replace( 'www.', '', trim( $data ) ) );

if ( isset ( $tmp['scheme'] ) )
return trim( $tmp['host'] );
else
return
trim( $tmp['path'] );
}

// На вход можно подавать как массив так и строку
print_r( getDomen( $array ) );
echo "<hr>\n";
echo getDomen( $string );

/*
Результат
Array
(
[0] => test.ru
[1] => test.ru
[2] => test.ru
[3] => тест.рф
)
<hr>
test.ru
*/
такое не подойдет ?

Спустя 2 минуты, 34 секунды (15.09.2012 - 12:46) 123456 написал(а):
Нет не подойдет, т.к. я незнаю конкретного URL

Спустя 5 часов, 28 минут, 13 секунд (15.09.2012 - 18:14) walerus написал(а):
123456 В смысле ? - "не знаю конкретного урла" ?... приведи примеры какие могут быть урлы, и чего от них требуется...
Быстрый ответ:

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