HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

preg_match
  #1  
Старый 14.04.2010, 18:50
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
С нами: 10011945

Репутация: 33
По умолчанию preg_match

помогите)

есть файл 1.txt, в нём строки типа:
Код:
<table width=100% bgcolor=#FDFDFF width=702><td width=16% valign=top 1><p align=center>14.04.2010</td><td align=center width=18% valign=top 2>Антон</td><td width=51% valign=top 3>текстовое сообщение о как</td></tr></table>

<table width=100% bgcolor=#FDFDFF width=702><td width=16% valign=top 1><p align=center>14.04.2010</td><td align=center width=18% valign=top 2>Антон1</td><td width=51% valign=top 3>текстовое сообщение о как</td></tr></table>

<table width=100% bgcolor=#FDFDFF width=702><td width=16% valign=top 1><p align=center>14.04.2010</td><td align=center width=18% valign=top 2>Антон2</td><td width=51% valign=top 3>текстовое сообщение о как</td></tr></table>

и вообщем нужно три разных прегматча чтобы можно было отдельно вытащить дату как видим 14.04.2010, отдельно вытащить имя, это Антон и вытащить само содержимое и суть в чем былобы две возможности удалить вообще эту строку от <table до </table> и изменить эти три параметра

Последний раз редактировалось rubik-nerubik; 14.04.2010 в 19:01..
 
Ответить с цитированием

  #2  
Старый 14.04.2010, 18:55
drim
Участник форума
Регистрация: 27.08.2009
Сообщений: 131
С нами: 8793175

Репутация: 33
По умолчанию

используйте пареметр width=% как якорь - для разных полей его значение разное
 
Ответить с цитированием

  #3  
Старый 14.04.2010, 19:00
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
С нами: 10011945

Репутация: 33
По умолчанию

ну так я сам хз как

п.с. я сделал якоря 1 2 и 3 может поможет
 
Ответить с цитированием

  #4  
Старый 14.04.2010, 19:07
drim
Участник форума
Регистрация: 27.08.2009
Сообщений: 131
С нами: 8793175

Репутация: 33
По умолчанию

в перле как-то так
$date = $1 if $srctext =~ /width=16% valign=top><p align=center>(\d\d\.\d\d\.\d\d\d\d)</;
$name = $1 if $srctext =~ /width=18% valign=top><p align=center>(\w+)</;
$info = $1 if $srctext =~ /width=51% valign=top><p align=center>(\w+)</;

в php не подскажу, ибо лень - думайте сами
в документации описано

Последний раз редактировалось drim; 14.04.2010 в 19:11..
 
Ответить с цитированием

  #5  
Старый 14.04.2010, 19:10
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
С нами: 9213376

Репутация: 278
По умолчанию

drim, человек просит на php, а не на perl
 
Ответить с цитированием

  #6  
Старый 14.04.2010, 19:13
drim
Участник форума
Регистрация: 27.08.2009
Сообщений: 131
С нами: 8793175

Репутация: 33
По умолчанию

Цитата:
Сообщение от Deathdreams  
drim, человек просит на php, а не на perl
не, ну я читать умею, а хз чо ему не ясно - сам принцип или синтаксис.
я принципом я помог, как мог, ну а синтаксис - извиняйте, прийдётся и своим моском подумать чуток

ps если _очень приблизительно, то что-то вроде
preg_match($reg, $srcstring,$result);
и в одном из элементов массива $result будет искомые данные

Последний раз редактировалось drim; 14.04.2010 в 19:16..
 
Ответить с цитированием

  #7  
Старый 14.04.2010, 19:11
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
С нами: 10011945

Репутация: 33
По умолчанию

не, в перле ненандо) да и не похоже на пхп =(
 
Ответить с цитированием

  #8  
Старый 14.04.2010, 19:17
dr.Web
Участник форума
Регистрация: 02.02.2009
Сообщений: 146
С нами: 9090281

Репутация: 43
По умолчанию

PHP код:
<?



$str
='<table width=100% bgcolor=#FDFDFF width=702><td width=16% valign=top 1><p align=center>14.04.2010</td><td align=center width=18% valign=top 2>Антон</td><td width=51% valign=top 3>текстовое сообщение о как</td></tr></table>

<table width=100% bgcolor=#FDFDFF width=702><td width=16% valign=top 1><p align=center>14.04.2010</td><td align=center width=18% valign=top 2>Антон1</td><td width=51% valign=top 3>текстовое сообщение о как</td></tr></table>

<table width=100% bgcolor=#FDFDFF width=702><td width=16% valign=top 1><p align=center>14.04.2010</td><td align=center width=18% valign=top 2>Антон2</td><td width=51% valign=top 3>текстовое сообщение о как</td></tr></table>'
;

preg_match_all('/<table width=100% bgcolor=#FDFDFF width=702><td width=16% valign=top 1><p align=center>(.*)<\/td><td align=center width=18% valign=top 2>(.*)<\/td><td width=51% valign=top 3>(.*)<\/td><\/tr><\/table>/i',$str,$res);

print_r($res);

?>
держи
 
Ответить с цитированием

  #9  
Старый 14.04.2010, 19:21
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
С нами: 10011945

Репутация: 33
По умолчанию

воо уже ближе dr.Web а можешь сделать чтобы каждая дата, имя были в отдельных инпутах а сообщение в textarea тут чето добавить надо вроде.. а что хз
 
Ответить с цитированием

  #10  
Старый 14.04.2010, 19:28
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
С нами: 9213376

Репутация: 278
По умолчанию

ТС сам не знаешь, что ему нужно.
Выдрать или что ?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...