Помощник
|
регулярка для url |
Salikhoff_hb
|
Сообщение
#1
|
||
|
|
||
|
|||
NiKON_hb |
8.4.2011, 20:59;
Ответить: NiKON_hb
Сообщение
#2
|
|
[PHP]filter_var($url, FILTER_VALIDATE_URL);[/PHP]
Не пойдет? |
|
|
Mulder_hb |
9.4.2011, 1:08;
Ответить: Mulder_hb
Сообщение
#3
|
|
FICO-077), вам учебник по пхп дедушка подарил? Функции ereg* считаются устаревшими и в любой последующей версии пхп могут быть выпилены.
|
|
|
Salikhoff_hb
|
Сообщение
#4
|
|
Mulder, нет, на оф. сайте написано что php5 поддерживает! Ну а что предложите использовать!? мне проще регуляркой, только я не могу ее правильно составить!
|
|
|
Apay |
9.4.2011, 11:19;
Ответить: Apay
Сообщение
#5
|
|
на том же php.net вроде читал что рекомендуется для регулярок использовать preg_*
|
|
|
Salikhoff_hb
|
Сообщение
#6
|
|
вот смотри вот код [PHP]<?php
require_once ('main/config.php'); if(isset($_POST['ok'])) { if(!empty($_POST['url']) && !empty($_POST['mail']) && !empty($_POST['title']) && !empty($_POST['category']) && !empty($_POST['description']) && !empty($_POST['keywords'])) { if(preg_match("|^(http|https|ftp)://+[a-z0-9]+([-_.]?[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $_POST['url'])) { if(preg_match("|^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $_POST['mail'])) { $category = intval($_POST['category']); $date = date('Y-m-d'); $mail = $_POST['mail']; $title = trim($_POST['title']); $title = htmlspecialchars($title); $description = trim($_POST['description']); $description = htmlspecialchars($description); $keywords = trim($_POST['keywords']); $keywords = htmlspecialchars($keywords); $url = parse_url($_POST['url']); $badurl = mysql_query("SELECT `url` FROM `catalog` WHERE (`url` LIKE '%".$url['host']."%')", $db); if (mysql_num_rows($badurl)==0) { $result = mysql_query("INSERT INTO `catalog` (`category`, `date`, `mail`, `title`, `description`, `keywords`, `url`) VALUES ('$category', '$date', '$mail', '$title', '$description', '$keywords', '$url')"); if (!$result) { echo ("URL-адрес не добавлен!"); } else { echo ("URL-адрес добавлен!"); } } else { echo ("URL-адрес уже зарегистрирован в системе!"); } } else { echo ("Проверьте корректность E-mail!"); } } else { echo ("Поверьте корректность URL-адреса!"); } } else { echo ("Все поля должны быть заполнены!"); } } ?>[/PHP] постоянно выдает ошибка на 29 строку а она [PHP]if(preg_match("|^(http|https|ftp)://+[a-z0-9]+([-_.]?[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $_POST['url'])) { [/PHP] как сделать чтобы проходил только правильный адрес, и не слишком ли много условий? есть ли какие предположение по улучшению? |
|
|
Salikhoff_hb
|
Сообщение
#7
|
|
вот сам текст ошибки
Warning: preg_match() [function.preg-match]: Unknown modifier 'h' in T:\home\virtual\amiso\url.php on line 29
|
|
|
Salikhoff_hb
|
Сообщение
#8
|
|
сделал [PHP]if(preg_match("|^(http(s?))\://[-0-9a-z_^\.]*\.[a-z]{2,6}(/?)$|i", $_POST['url'])) {[/PHP] есть какие предложения по улучшению?
|
|
|
Mulder_hb |
9.4.2011, 22:58;
Ответить: Mulder_hb
Сообщение
#9
|
|
(' post='108770 @ 9.4.2011, 15:00) Unknown modifier 'h' Кто вас учил в качестве ограничителей использовать '|'? Поэтому вам и выдает, что h является неизвестным модификатором preg_match("|^(http|https|ftp)://+[a-z0-9]+([-_.]?[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $_POST['url']) Итого ваш код сейчас выглядит так: preg_match('/^(http/hi); |
|
|
Maksimchik |
21.2.2013, 12:53;
Ответить: Maksimchik
Сообщение
#10
|
|
FILTER_VALIDATE_URL использует http://www.faqs.org/rfcs/rfc2396.html... Тут и регулярки есть.
Рылся, и нашел: ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))? Но врятли это то что надо. |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
✅ sms.chekons.com - ⭐ Сервис для получения SMS на реальные номера USA "Non-VoIP, безлим SMS, API" ⭐ Сервис для получения SMS на реальные номера USA |
13 | Chekon | 4078 | Вчера, 11:48 автор: Chekon |
|
Rebex.io – Ваша инновационная платформа для обмена криптовалюты! | 1 | Rebex | 683 | 17.4.2024, 11:50 автор: Rebex |
|
Какой % отказов нормален для сайта? | 11 | Aloof | 2819 | 16.4.2024, 12:48 автор: diviner99 |
|
Betatransfer.net - прием платежей для HIGH RISK проектов, интернет эквайринг и мерчант онлайн оплат | 54 | arendator | 34836 | 15.4.2024, 15:16 автор: arendator |
|
⭕Антидетект браузер AdsPower для эффективной работы с мультиаккаунтами! | 83 | AdsPower | 24425 | 14.4.2024, 22:52 автор: AdsPower |
Текстовая версия | Сейчас: 19.4.2024, 23:55 |