Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   preg_match (https://forum.antichat.xyz/showthread.php?t=196196)

rubik-nerubik 14.04.2010 18:50

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> и изменить эти три параметра

drim 14.04.2010 18:55

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

rubik-nerubik 14.04.2010 19:00

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

п.с. я сделал якоря 1 2 и 3 может поможет

drim 14.04.2010 19:07

в перле как-то так
$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 не подскажу, ибо лень - думайте сами
в документации описано

Deathdreams 14.04.2010 19:10

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

rubik-nerubik 14.04.2010 19:11

не, в перле ненандо) да и не похоже на пхп =(

drim 14.04.2010 19:13

Цитата:

Сообщение от Deathdreams
drim, человек просит на php, а не на perl

не, ну я читать умею, а хз чо ему не ясно - сам принцип или синтаксис.
я принципом я помог, как мог, ну а синтаксис - извиняйте, прийдётся и своим моском подумать чуток

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

dr.Web 14.04.2010 19:17

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);

?>

держи

rubik-nerubik 14.04.2010 19:21

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

Deathdreams 14.04.2010 19:28

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


Время: 18:14