Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » HTML, CSS, JavaScript

www -> http://www ?

Обсуждение темы www -> http://www ? в разделе HTML, CSS, JavaScript, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Всем здрасьте... Помогите решить небольшую проблемку: Есть гостевая книга. В ней есть поле для ввода url. Если вводить url без "http://", тогда при ...


Закрытая тема
 
Опции темы
Старый 17.10.2004, 18:22   #1
Всем здрасьте...

Помогите решить небольшую проблемку:
Есть гостевая книга.
В ней есть поле для ввода url.
Если вводить url без "http://", тогда при выводе страницы ссылка получается такого вида: текущий адрес + то, что было введено. Например, в поле url человек ввел "asd.ru", а гостевая находится по адресу http://gb.ru, тогда ссылка получится такой: http://gb.ru/asd.ru.
Как проверить, есть ли в начале "http://", и если нет, тогда добавить?
Желательно показать это на примере.

СпасибА!
 
Старый 17.10.2004, 18:22
Ссылки
Старый 17.10.2004, 20:10   #2
Вроде есть спец функция у пхп...

А если нет, то это вроде просто:

Если первые 7 символов http://, то прописываем ссылку, а если не такие, то прописываем http://+введённый текст.
 
Старый 17.10.2004, 20:37   #3
Vulko, а как это сделать?
Можешь маленький примерчик написать?
Я ничего на php не знаю.
 
Старый 17.10.2004, 22:57   #4
if (substr($sama_stroka, 0, 7)!="http://"){
$sama_stroka="http://".$sama_stroka;
}
 
Старый 17.10.2004, 23:23   #5
PHP код:
$pattern "/([\s>]+)www\.([a-zA-Z\.\?&=\;\-\/_]+)([\,\.\W\s<\[]+)/";
$text preg_replace ($pattern"\\1http://www.\\2\\3"$text); 
 
Старый 18.10.2004, 01:06   #6
Alkeeper, так даже лучше - более глубокое рассмотрение проблемы
 
Старый 18.10.2004, 14:03   #7
RoN

Зачем это все делать??? Просто вырезаешь из строки функцией str_replace текст http:// , а при выводе просто добавляешь! И если чел ввел http:// , то оно вырежется, а если не ввел - не вырежется, и в любом случае строка при выводе будет с http:// .
Надеюсь понятно разъяснил?

А вот и пример.
1. Чел ввел www.blablabla.ru
$string=str_replace("http://", "", $string);
И выводишь с добавлением http://
2. Чел ввел http://www.blablabla.ru
$string=str_replace("http://", "", $string); //вырезаем http://
Теперь у нас строка имеет вид: www.blablabla.ru
И опять выводишь с добавлением http://
 
Старый 18.10.2004, 14:23   #8
ILA

RoN, для реализации твоего варианта надо править в двух местах:
1. в обработчике формы.
2. при выводе ссылки.
Может, тебе так и проще, но по-моему лучше при вводе приводить к нужному виду или при выводе, но в обеих частях.

Я бы при вводе делал $string="http://".str_replace("http://", "", $string);
 
Старый 18.10.2004, 19:12   #9
RoN, то, что привёл Alkeeper хорошо тем, чтозаодно проверит и корректность всего адреса. Например http://ooo:-)бля~#$$@!&&&1803-^.пиписька - это явно некорректный адрес!
 
Старый 19.10.2004, 03:17   #10
Всем спасибо!

Проблема решена своими силами.

Кстати, если я не ошибаюсь, то код Alkeeper'а не до конца сделан. А если введут не просто без http://, но и без www? Например: blablabla.ru. Тогда вставки http:// не произойдет.

Я сделал так:

function inserthttp($string)
{
$string = " " . $string;
$string = eregi_replace('([[:space:]()[{}])([-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1http://\\2', $string);
$string = ereg_replace("http://http://","http://",$string);

return trim($string);
}

И только спустя некоторое время я понял, что можно просто добавлять в начало http://, а http://http:// удалять, но как такое сделать не знаю. Поэтому работает эта функция, и довольно-таки успешно.
 
Старый 19.10.2004, 03:17
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ftp vs. http seka Настройка серверов 2 03.11.2005 10:26
http://biolonglife.com/ seka Зал дебютантов 5 05.08.2005 13:43
http://staff-ua.com 123321 Зал дебютантов 8 05.03.2005 20:05
http://onlive.nm.ru/ Olga Зал дебютантов 5 29.07.2004 23:29
http-сервер и php-интерпретатор pass HTML, CSS, JavaScript 13 01.12.2003 01:27


Текущее время: 09:29. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум