информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetПортрет посетителяСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
preg_match_all пользуй 04.11.03 10:51  Число просмотров: 1334
Автор: whiletrue <Роман> Статус: Elderman
Отредактировано 04.11.03 10:57  Количество правок: 3
<"чистая" ссылка>
> В html тексте:
>
 > <input type=hidden name=TRANSACTION_NUMBER
> value="12345">
> 

---
> мне нужно найти строку "12345" Как это можно сделать на
> php?
> Сначала, по идее, я должен найти "TRANSACTION_NUMBER" так:
> if (ereg("PAYMENT_BATCH_NUM",$buffer)){...Нашли...}
> А потом как найти значение "12345"?
>
> Спасибо.

Что-то типа:

preg_match_all("/TRANSACTION_NUMBER[\s\n\r\t]+value=\"(.*)\">/simU", ,join('',$html_text), $result);

в $result[1] - будет массив твоих найденных значений (12345)

З.Ы. Лучше под себя переделай - пример далек от идеала.
<programming>
php: Поиск в тексте. 04.11.03 10:39  
Автор: Hux0r Статус: Незарегистрированный пользователь
<"чистая" ссылка>
В html тексте:
 
<input type=hidden name=TRANSACTION_NUMBER value="12345">

---
мне нужно найти строку "12345" Как это можно сделать на php?
Сначала, по идее, я должен найти "TRANSACTION_NUMBER" так:
if (ereg("PAYMENT_BATCH_NUM",$buffer)){...Нашли...}
А потом как найти значение "12345"?

Спасибо.
preg_match_all пользуй 04.11.03 10:51  
Автор: whiletrue <Роман> Статус: Elderman
Отредактировано 04.11.03 10:57  Количество правок: 3
<"чистая" ссылка>
> В html тексте:
>
 > <input type=hidden name=TRANSACTION_NUMBER
> value="12345">
> 

---
> мне нужно найти строку "12345" Как это можно сделать на
> php?
> Сначала, по идее, я должен найти "TRANSACTION_NUMBER" так:
> if (ereg("PAYMENT_BATCH_NUM",$buffer)){...Нашли...}
> А потом как найти значение "12345"?
>
> Спасибо.

Что-то типа:

preg_match_all("/TRANSACTION_NUMBER[\s\n\r\t]+value=\"(.*)\">/simU", ,join('',$html_text), $result);

в $result[1] - будет массив твоих найденных значений (12345)

З.Ы. Лучше под себя переделай - пример далек от идеала.
preg_match_all пользуй 04.11.03 11:32  
Автор: Hux0r Статус: Незарегистрированный пользователь
<"чистая" ссылка>

> preg_match_all("/TRANSACTION_NUMBER[\s\n\r\t]+value=\"(.*)\
> ">/simU", ,join('',$html_text), $result);
>
> в $result[1] - будет массив твоих найденных значений
> (12345)
>
> З.Ы. Лучше под себя переделай - пример далек от идеала.

Ошибку выдает parse error, unexpected ',' . Может где запятая лишняя? А потом $html_text должен быть массивом, но у меня это не массив ведь а строка. Можно как-то упростить пример?
preg_match_all пользуй 04.11.03 11:40  
Автор: whiletrue <Роман> Статус: Elderman
Отредактировано 04.11.03 11:58  Количество правок: 1
<"чистая" ссылка>
>
> >
> preg_match_all("/TRANSACTION_NUMBER[\s\n\r\t]+value=\"(.*)\
> > ">/simU", ,join('',$html_text), $result);
> >
> > в $result[1] - будет массив твоих найденных значений
> > (12345)
> >
> > З.Ы. Лучше под себя переделай - пример далек от
> идеала.
>
> Ошибку выдает parse error, unexpected ',' . Может где
> запятая лишняя? А потом $html_text должен быть массивом, но
> у меня это не массив ведь а строка. Можно как-то упростить
> пример?

$html_text - если ты его достал с помощью file(), то он массив строк. Так обычно делают, поэтому я join и написал.

насчет запятой - фиг знает попробуй \" заменить на [\"]... попробуй проще условие записать... поэксперементируй вообще.

int preg_match_all ( string pattern, string subject, array matches [, int flags])

Вот неплохой пример из хелпа:

<?php
// The \\2 is an example of backreferencing. This tells pcre that
// it must match the second set of parentheses in the regular expression
// itself, which would be the ([\w]+) in this case. The extra backslash is
// required because the string is in double quotes.
$html = "bold text<a href=howdy.html>click me</a>";

preg_match_all ("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches);

for ($i=0; $i< count($matches[0]); $i++) {
echo "matched: ".$matches[0][$i]."\n";
echo "part 1: ".$matches[1][$i]."\n";
echo "part 2: ".$matches[3][$i]."\n";
echo "part 3: ".$matches[4][$i]."\n\n";
}
?>
Спасибо! получилось. 04.11.03 17:24  
Автор: Hux0r Статус: Незарегистрированный пользователь
<"чистая" ссылка>
php: Поиск в тексте. 04.11.03 10:45  
Автор: trent Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> мне нужно найти строку "12345" Как это можно сделать на php
if (($pos = strpos('TRANSACTION_NUMBER')) !== false) {
нашли и вырезали с помощью substr, не забываем что в $pos храниться позиция строки 'TRANSACTION_NUMBER'
}

http://www.php.net/substr
http://www.php.net/strpos
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach