|
|
|
| Вот не думал что они мне пригодятся...
Обещаю сегодня же начать учить их.
Но пока очень надо разобраться в следующем выражении. Что оно делает?
$var="/<[Aa][ \r\n\t]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\"\n\r\t]*([^ \"'>\r\n\t#]+)[^>]*>/";
|
| |
|
|
|
|
автор: cheops (из ННГУ) (24.01.2005 в 18:22) |
|
|
для: Axxil
(24.01.2005 в 16:31)
| | Вырезает в
Это регулярное выражение вырезает "что-то"... но оно немного закручено, можно составить менее сложное и выполняющее ту же функцию | |
|
|
|
|
|
|
|
для: cheops (из ННГУ)
(24.01.2005 в 18:22)
| | Нет, оно понятно что вырезает.
Я даже знаю что.
запись вида http://www.nameofsite.com
Но есть большое подозрение что делант оно это неправильно.
>можно составить менее сложное и выполняющее ту же функцию
Если несложно помогите составить...
А может есть другой способ для задачи:
Скрипт читает в переменную веб-страницу, потом с помощью данного выражения разбирает её и ищет в ней ссылки на определённые страницы. | |
|
|
|
|
|
|
|
для: axxil
(25.01.2005 в 00:29)
| | Тут главное не нужно всё сразу определять... Вырежте сначала то что идёт после href= и до > - а потом уже средствами PHP можно посмотреть заключено это в кавычки или нет...
"/<[\s]*a[\s]*href[\s]*=[\s]*([^>]*)>/i"
|
| |
|
|
|
|
|
|
|
для: cheops
(25.01.2005 в 00:43)
| | Понятно.
Точнее непонятно, но надо понимать...
Посоветуйте что нужно почитать по регулярным выражениям (и надо ли?) чтобы всерьёз и надолго и без лишней шелухи... | |
|
|
|
|
|
|
|
для: Axxil
(25.01.2005 в 09:51)
| | В мире сейчас только одна книга, посвящённая регулярным выражениям - это Дж. Фридл "Регулярные выражения" издательства O'REILLY с парой симпатишных сов на обложке. В начале книги он на 5 страницах стонет как тяжело было написать такую книгу, а на остальных выкладывает всю их подноготную. Даже если продерётесь хотя бы до половины книги - будете Гуру в регулярных выражениях (читать нужно раза 3 - чтение не для слабонервных :). Эта книга сейчас валяется во всех книжных магазинах - увидите - берите, даже если не будете сразу её читать. Потом пожалеете, что не купили.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=538 | |
|
|
|
|
|
|
|
для: cheops
(25.01.2005 в 14:07)
| | Ух ты. А я думал что один такой - не разбераюсь в регулярных выражениях. Я прочел вашу книгу, там конечно расказывается про регулярные выражения.Но конечно все случаи жизни не расмотришь. Вот... У меня мальнький такой вопросик.
Допустим есть
<input type=text name=four class="ddd" size="2">
|
Вот через эту форму должно передоваться только число. т.е. если пользователь введет что то другое, то это ошибка. Подскажите пожайлуста как с помощью регулярного вырожения проверить на правельность это поле | |
|
|
|
|
|
|
|
для: Sin
(25.01.2005 в 21:40)
| | А какое число? Если это целочисленное значение, то подойдёт следующее решение
<?php
if(!preg_match("|^[\d]*$|", $_GET['four'])) exit("Неверный формат числа");
?>
|
Если это число с плавающей точкой, то следует использовать следующее регулярное выражение
<?php
if(!preg_match("|^[-+]?[\d]+[\.,][\d]+$|", $_GET['four'])) exit("Неверный формат числа");
?>
|
PS Регулярные выражение это не раздел PHP, а отдельный субъязык, как SQL, поэтому им следует уделять соответствующее внимание. | |
|
|
|
|
|
|
|
для: cheops
(25.01.2005 в 22:46)
| | Спасибо большое выручили, только вот это вырожение
<?php
if(!preg_match("|^[\d]*$|", $_GET['four'])) exit("Неверный формат числа");
?>
|
Не хочет пропускать ноль как бы его туда всунуть? | |
|
|
|
|
|
|
|
для: Sin
(30.01.2005 в 12:55)
| | Хм... вообще говоря должно... попробуйте тогда явно задать числовой диапазон
<?php
if(!preg_match("|^[0-9]*$|", $_GET['four'])) exit("Неверный формат числа");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(30.01.2005 в 13:16)
| | Упс извените тут немного моей вины дело в том что я писал
<?
if(!empty($_POST['five']) && preg_match("|^[0-9]*$|", $_POST['four']))
{
//..................
}
?>
Ведь !empty ноль тоже не пропускает
|
| |
|
|
|