Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
131 / 127 / 50
Регистрация: 28.04.2010
Сообщений: 928
1

Логическое И

02.02.2012, 13:57. Показов 2789. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

Собственно, сабж.

Задача стоит в том, что бы найти все формы на странице (<form></form>), их имена и обработчики (к примеру action="1.php").
Дальше найти все input'ы в форме и соответственно button'ы.

Как мы ищем input'ы и их name'ы
PHP
1
preg_match_all("<(name=[\"' ][a-zA-Z0-9]+[\"' ].*type=[\"' ][a-zA-Z0-9]+[\"' ])|(type=[\"' ][a-zA-Z0-9]+[\"' ].*name=[\"' ][a-zA-Z0-9]+[\"' ])>i",$doc, $or);
немного пояснений. Мы ищем совпадения name и type в любой последовательности ((name='' input='')|(input='' name='')), после мы вытаскиваем через preg_replace собственно содержимое и делаем ассоц массив для дальнейшей работы.

Вопрос в сделующем.

Регулярка работает, но вместо того что бы выдавать из 5 результатов 5 она выдает 10. Приведу пример
вот исходный код страницы.

HTML5
1
<html> <body> <form name='form' action='new.php' method='POST'> <input name='in' type='text' > <input type='submit' Name='go' value='go'> </form> </body> </html>
запуская скрипт мы получаем
возвращаемый обьект
Array ( [0] => Array ( [0] => name='in' type='text' [1] => type='submit' Name='go' ) [1] => Array ( [0] => name='in' type='text' [1] => ) [2] => Array ( [0] => [1] => type='submit' Name='go' ) )
и, соответственно наши данные
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 ------- name='in' type='text'
name :in
 
type :text
 
 
------- type='submit' Name='go'
name :go
 
type :submit
 
 
------- name='in' type='text'
name :in
 
type :text
 
 
-------
name :
 
type :
 
 
-------
name :
 
type :
 
 
------- type='submit' Name='go'
name :go
 
type :submit
хотя по логике вещей должно было выйти следующее

PHP
1
2
3
4
5
6
7
8
9
10
------- name='in' type='text'
name :in
 
type :text
 
 
------- type='submit' Name='go'
name :go
 
type :submit
Вопрос раз: почему регулярка делает выдает так много? Как можно ее подредактировать?
Вопрос два: Проверенно на mail.ru и vk.com - работает (хоть и выдает два раза инфу). Но, проверив на google.com и cyberforum.ru не возвращает вообще ничего(!?) кроме пустого(?) обьекта -
PHP
1
Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )
.
Может кто сталкивался с таким уже?

Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2012, 13:57
Ответы с готовыми решениями:

Логическое И
Доброго времени суток! Собственно, сабж.

Выполнить операцию "логическое И" и операцию "логическое ИЛИ" над числами массива
Помогите пожалуйста, нужно очень срочно написать программу. Теорию знаю, а вот с практикой не...

Логическое OR
Всем привет! ) Делаю шифратор. Необходимо логическое &quot;или&quot;. Может кто-нибудь знает есть ли готовое...

Логическое и
Это ведь &amp;&amp; ? Тогда можете объяснить, в чем разница? пояснение после кода (весь привел на всякий...

2
5 / 5 / 1
Регистрация: 03.02.2012
Сообщений: 7
22.02.2012, 13:58 2
Цитата Сообщение от AnTro.Net Посмотреть сообщение
Вопрос раз: почему регулярка делает выдает так много? Как можно ее подредактировать?
Всё верно там есть два подмасива вот посмотри http://php.su/functions/?preg-match-all
1
131 / 127 / 50
Регистрация: 28.04.2010
Сообщений: 928
22.02.2012, 16:38  [ТС] 3
Цитата Сообщение от dimanik43 Посмотреть сообщение
Всё верно там есть два подмасива вот посмотри http://php.su/functions/?preg-match-all
еще не проверял, но нутром чую, это то что нужно) Благодарю)
0
22.02.2012, 16:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2012, 16:38
Помогаю со студенческими работами здесь

Логическое И
Здраствуйте. есть такой кусочек кода typedef struct _queue{ int data; struct _queue* next;...

Логическое условие
Доброго времени суток! Есть некие данные которые проходят проверку после проверки если тру идут в...

Логическое уравнение
Всем привет. Нужна помощь в решении. По функциональной схеме составить логическое уравнение:

Логическое поле
не пойму, зачем вы дублировали тему, похоже они ничем не отличаются Добрый день! Есть...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru