Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 11

Как добавить http://

26.02.2015, 14:37. Показов 1641. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Возникла проблема, есть поле с которого я получаю URL, URL обязательно должен быть вида http://example.ru
В общем ВОПРОС, как сделать так, чтобы когда пользователь вводит example.ru(т.е без http://) мне приходило http://example.ru ?
Заранее благодарю.
HTML5
1
2
3
<form action="" method="post">
<input required type="text" placeholder="Введите ссылку(с 'http://')" class="url" name="url"><input type="submit" name="Ok">
</form>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.02.2015, 14:37
Ответы с готовыми решениями:

File_get_contents failed to open stream: HTTP request failed! HTTP/1.1 505
Ребята подскажите пожалуйста. Использую фреймворк Yii. Пишу небольшой парсер. Все вроде бы работало. Тут неожиданно в один прекрасный день,...

Как добавить http авторизацию (http authorization header) при работе с web-сервисом?
Добрый день! Проблема такая. Есть веб-сервис который при подключения требует авторизацию. Скачал wsdl, создал pas. Но для авторизации...

Как добавить к HTTP-серверу Whitelist?
Форумчане, подскажите - как припаять к http-шному серваку вайт лист ?? сервак поднимаю так: func (c *Client) RaiseServer(logID...

7
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
26.02.2015, 15:11
_Edward, а что если пользователь другой протокол укажет? Если важно, то уточните этот момент, а пока могу такой вариант предложить:
PHP
1
2
3
4
5
$url = 'google.com';
if(!preg_match('#^(https?|ftp)://#', $url)){
    $url = 'http://'.$url;
}
echo $url; // http://google.com
1
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
26.02.2015, 15:47
Цитата Сообщение от _Edward
В общем ВОПРОС, как сделать так, чтобы когда пользователь вводит example.ru(т.е без http://) мне приходило http://example.ru ?
Заранее благодарю.
Можно, вот так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
...
 
$url = $_POST['url'];
 
if( substr_count($url, 'http://') == 0 ) {
    
    $url = "http://$url";
}
 
echo $url;
 
...
Lazy_Den. Ф-я substr_count отработает быстрее чем preg_match.
1
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
26.02.2015, 15:57
Цитата Сообщение от tolimadokara Посмотреть сообщение
Ф-я substr_count отработает быстрее чем preg_match.
А вы разве не заметили, что я несколько протоколов проверяю.
0
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 11
26.02.2015, 16:02  [ТС]
Lazy_Den, Спасибо огромное, очень понравился вариант!
Только вот что означает "#^(https?|ftp)://#", я так понял что проверка https и ftp, только не пойму, что за символы #,^, ?, | какую функцию они выполняют?
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
26.02.2015, 16:02
P.S. Однако, свой вариант, я бы всё-таки немного изменил.
PHP
1
2
3
4
5
$url = 'google.com';
if(!parse_url($url, PHP_URL_SCHEME)){
    $url = 'http://'.$url;
}
echo $url;
0
26.02.2015, 16:04

Не по теме:

Цитата Сообщение от Lazy_Den
Цитата Сообщение от tolimadokara
Ф-я substr_count отработает быстрее чем preg_match.
А вы разве не заметили, что я несколько протоколов проверяю.
А... ну, тогда ясно. Не будем спорить :senor:

Маловероятно что там ссылка появиться на FTP сервер.

Тогда, Вам, в вашем решении в строке №3 это тоже надо учесть

PHP
1
$url = 'http://'.$url;
Но может в Вашем решении - лучше. хз.

0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
26.02.2015, 16:09
Лучший ответ Сообщение было отмечено _Edward как решение

Решение

Цитата Сообщение от _Edward Посмотреть сообщение
Только вот что означает
Означает, что мы ищем с начала строки или "http", или "https", или "ftp", за которыми идёт двоеточие и два слеша. Если не находим, то добавляем "http://". Но смотрите лучше на мой измененный вариант с функцией parse_url()
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.02.2015, 16:09
Помогаю со студенческими работами здесь

Как добавить новый заголовок к http и https запросу!
Необходимо переделать весь трафик идущий с компа добавить новый заголовок к http и https запросу и потом отправить интернет провайдеру. Не...

www-http сниффер. Как отследить HTTP запросы?
Посмотрел я вот эту статью: http://www.cyberguru.ru/cpp-sources/network/primer-prostejshego-sniffera-dlya-windows-2000/xp.html ...

Как сделать редирект с http://www на http://?
Сайт загружается и с http://www.example.com и с http://example.com. Правильно ли я понимаю, что поисковики видят это как 2 разных сайта, и,...

Браузер: если пользователь не ввел http, то добавить его перед адресом
Всем привет. Создал браузер. Есть поле edit1 куда нужно вводить сайт. Когда вводишь просто &quot;vk.com&quot; не работает. Когда...

Как в Yii 2 изменить URl с http://localhost/index.php?r=site%2Findex на http://localhost/index ?
Очень нужно нормально розставить пути ,делал по видео выдало ошибку.На каждой странице http://localhost/index.php?r=site%2+имя файла , а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru