Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Занести текст в переменные
 
 автор: Лилия   (10.07.2008 в 15:38)   письмо автору
 
 

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

Как весь текст занести в переменые???
Есть штмл

//блок №1
<tr bgcolor="#333333">
<td class="title" colspan="4" height="18">&nbsp;<b>StroyMash</b> - статья 125 Т.К.</td>
</tr>
<tr bgcolor="#333333">
<td class="match-light" height="18" width="45">&nbsp;12:40</td>
<td class="match-light" colspan="3" align="right" width="286">July 8&nbsp;</td>
</tr>
//блок №1.1 (подблок)
<tr>
<td colspan="4" height="1"></td>
</tr>
<tr bgcolor="#cfcfcf">
<td height="18" width="45">&nbsp; приговор вынесен: 18:45</td>
<td align="right" width="118">Аскар Минликиев</td>
<td align="center" width="50">9 месяцев</td>
<td width="118">ИК-2</td>
</tr>
//блок №1.2 (подблок)
<tr>
<td colspan="4" height="1"></td>
</tr>
<tr bgcolor="#cfcfcf">
<td height="18" width="45">&nbsp; время исполнения: 18:15</td>
<td align="right" width="118">Юрий Громов</td>
<td align="center" width="50">7 месяцев</td>
<td width="118">ИК-2</td>
</tr>
<tr bgcolor="#111111"><td colspan="4" height="4"></td></tr><tr><td colspan="4" height="1"></td></tr>

//блок №2
<tr bgcolor="#333333">
<td class="title" colspan="4" height="18">&nbsp;<b>StroyMash_Kazan</b> - статья 72 Т.К.</td>
</tr>
<tr bgcolor="#333333">
<td class="match-light" height="18" width="45">&nbsp;12:40</td>
<td class="match-light" colspan="3" align="right" width="286">July 8&nbsp;</td>
</tr>
//блок №2.1 (подблок)
<tr>
<td colspan="4" height="1"></td>
</tr>
<tr bgcolor="#cfcfcf">
<td height="18" width="45">&nbsp; время исполнения: 10:45</td>
<td align="right" width="118">Александр Чекмарев</td>
<td align="center" width="50">3 месяца</td>
<td width="118">ИК-8/3</td>
</tr>
<tr>
<td colspan="4" height="1"></td>
</tr>
<tr bgcolor="#111111"><td colspan="4" height="4"></td></tr><tr><td colspan="4" height="1"></td></tr>
//блок №3 и т. д.


Надо всё занести в переменные ...
После, семидневного танца вокруг книги по php, в голову заполз следующий листинг:

//фильтруем текст
preg_match_all ("/<tr bgcolor=\"#333333\"><td class=\"title\" colspan=\"4\" height=\"18\">(.+?)<\/td><\/tr><tr bgcolor=\"#333333\"><td class=\"match-light\" height=\"18\" width=\"45\">(.+?)<\/td><td class=\"match-light\" colspan=\"3\" align=\"right\" width=\"286\">(.+?)<\/td><\/tr><tr><td colspan=\"4\" height=\"1\"><\/td><\/tr><tr bgcolor=\"#cfcfcf\"><td height=\"18\" width=\"45\">(.+?)<tr><td colspan=\"4\" height=\"1\"><\/td><\/tr><tr bgcolor=\"#111111\"><td colspan=\"4\" height=\"4\"><\/td><\/tr><tr><td colspan=\"4\" height=\"1\"><\/td><\/tr>/isU", $line, $prog);

for($i=0;$i<count($prog[1]);$i++)
{
$title = $prog[1][$i];
preg_match ("/<b>(.+?)</b>/isU", $title, $page);

$time_local = $prog[2][$i];
$match_month_day = $prog[3][$i];
$title_more = $prog[4][$i];
//дофильтровываем текст
preg_match_all ("#<td height=\"18\" width=\"45\">(.+?)</td><td align=\"right\" width=\"118\">(.+?)</td><td align=\"center\" width=\"50\">(.+?)</td><td width=\"118\">(.+?)</td></tr>#isU", $title_more, $prog_1);

for($j=0;$j<count($prog_1[2]);$j++)
{
$time_live = $prog_1[1][j];
$home_team = $prog_1[2][j];
$bill = $prog_1[3][j];
$away_team = $prog_1[4][j];
}


Теперь, внимание уважаемые Знатоки, вопрос: Будет ли данный листинг работать? ... Короче как весь текст занести в переменые???
Помагите пожалуйста!!!

   
 
 автор: Trianon   (10.07.2008 в 21:04)   письмо автору
 
   для: Лилия   (10.07.2008 в 15:38)
 

Очень погано разбирать сий суровый текст...
Я попробовал так:

<?php
require_once('xml-parse.php');
$html = <<<HTMLL
<tr bgcolor="#333333">
<td class="title" colspan="4" height="18">&nbsp;<b>StroyMash</b> - статья 125 Т.К.</td>
</tr>
<tr bgcolor="#333333">
<td class="match-light" height="18" width="45">&nbsp;12:40</td>
<td class="match-light" colspan="3" align="right" width="286">July 8&nbsp;</td>
</tr>
//блок №1.1 (подблок)
<tr>
<td colspan="4" height="1"></td>
</tr>
<tr bgcolor="#cfcfcf">
<td height="18" width="45">&nbsp; приговор вынесен: 18:45</td>
<td align="right" width="118">Аскар Минликиев</td>
<td align="center" width="50">9 месяцев</td>
<td width="118">ИК-2</td>
</tr>
//блок №1.2 (подблок)
<tr>
<td colspan="4" height="1"></td>
</tr>
<tr bgcolor="#cfcfcf">
<td height="18" width="45">&nbsp; время исполнения: 18:15</td>
<td align="right" width="118">Юрий Громов</td>
<td align="center" width="50">7 месяцев</td>
<td width="118">ИК-2</td>
</tr>
<tr bgcolor="#111111"><td colspan="4" height="4"></td></tr><tr><td colspan="4" height="1"></td></tr>

//блок №2
<tr bgcolor="#333333">
<td class="title" colspan="4" height="18">&nbsp;<b>StroyMash_Kazan</b> - статья 72 Т.К.</td>
</tr>
<tr bgcolor="#333333">
<td class="match-light" height="18" width="45">&nbsp;12:40</td>
<td class="match-light" colspan="3" align="right" width="286">July 8&nbsp;</td>
</tr>
//блок №2.1 (подблок)
<tr>
<td colspan="4" height="1"></td>
</tr>
<tr bgcolor="#cfcfcf">
<td height="18" width="45">&nbsp; время исполнения: 10:45</td>
<td align="right" width="118">Александр Чекмарев</td>
<td align="center" width="50">3 месяца</td>
<td width="118">ИК-8/3</td>
</tr>
<tr>
<td colspan="4" height="1"></td>
</tr>
<tr bgcolor="#111111"><td colspan="4" height="4"></td></tr><tr><td colspan="4" height="1"></td></tr>
//блок №3 и т. д.
HTMLL;
//echo "<table>$html</table>";
echo '<pre>';
//print_r($out);

$pattern '#<td
    ([\s]+class="([^"]+)")?
    ([\s]+colspan="([^"]+)")?
    ([\s]+align="([^"]+)")?
    ([\s]+height="([^"]+)")?
    ([\s]+width="([^"]+)")?
     >(.*)</td>#x'
;
preg_match_all($pattern$html$outPREG_SET_ORDER);
//print_r($out);
$res = array();
$line $lines = array();
foreach(
$out as $row)
{
    if(
$row[4] == && $row[8] == 1)
    {
        if(!empty(
$line))
        {
          
$lines[] = $line;
          
$line = array();
        }
    }
    else if(
$row[2] == 'title')
    {
        if(!empty(
$line))
        {
          
$lines[] = $line;
          
$line =  array();
        }
        if(!empty(
$lines))
        {
            
$res[] = array('title' => $title'lines' => $lines);
            
$lines = array();
        }
        
$title['name'] = $row[11];
    }
    else if(
$row[2] == 'match-light')
        
$title[$row[4] == '3' 'date':'time' ] = $row[11];
    else if(
$row[8] == 18 && $row[10] == 45)
         
$line['act'] = $row[11];
    else if(
$row[6] == 'right' && $row[10] == 118)
         
$line['person'] = $row[11];
    else if(
$row[6] == 'center' && $row[10] == 50)
         
$line['weight'] = $row[11];
    else if(
$row[6] == && $row[8] == && $row[10] == 118)
         
$line['location'] = $row[11];
}
if(!empty(
$line))
    
$lines[] = $line;
if(!empty(
$lines))
  
$res[] = array('title' => $title'lines' => $lines);

print_r($res);

?>

Работает весьма эмпирически.
Лучше бы найти более детерминированный источник...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования