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

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

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

 

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

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

тема: Help (проверка на пустые поля)
 
 автор: feniksua   (29.06.2009 в 02:19)   письмо автору
 
 

Имею следующий код из которого необходимо вытянуть данные:

<tr height=17 style='height:12.75pt'>
<td height=17 class=xl1917482 width=43 style='height:12.75pt;width:32pt' x:num>1</td>
<td class=xl2017482>86053</td>
<td class=xl2117482>КОВАЛЕНКО А.А.</td>
<td class=xl2117482>КВАР. 275 Дом 15 кв. 73</td>
<td class=xl2217482>74365</td>
<td class=xl2317482>1579,75</td>
<td class=xl2317482 x:num>25</td>
</tr>
<tr height=17 style='height:12.75pt'>
<td height=17 class=xl1917482 style='height:12.75pt' x:num>2</td>
<td class=xl2017482>16152</td>
<td class=xl2117482>КОБЫЛЯЦКИЙ Ю.Ю.</td>
<td class=xl2117482>КВАР. 291 Дом 7 кв. 43</td>
<td class=xl2217482>43336</td>
<td class=xl2317482>12110,63</td>
<td class=xl2317482 x:num>25</td>
</tr>
<tr height=17 style='height:12.75pt'>
<td height=17 class=xl1917482 style='height:12.75pt' x:num>3</td>
<td class=xl2017482>86368</td>
<td class=xl2117482>ПУХНАТАЯ Л.Я.</td>
<td class=xl2117482>КВАР. 278 Дом 16 кв. 11</td>
<td class=xl2217482></td>
<td class=xl2317482>1615,27</td>
<td class=xl2317482 x:num>25</td>
</tr>

Написал следуюшее:
$pattern =
"|<tr height=17 style='height:12.75pt'>".".".
"*>([^>]+)</td>".".".
"*>([^>]+)</td>".".".
"*>([^>]+)</td>".".".
"*>([^>]+)</td>".".".
"*>([^>]+)</td>".".".
"*>([^>]+)</td>".".".
"*>([^>]+)</td>".".".
"*</tr>|isU";
$text = preg_match_all($pattern, $text, $out);

for($i = 0; $i < count($out[0]); $i++)
{
echo '<hr whith="100%" style="border: 1px blue dashed;"></hr>';
echo "1: Номер: <strong>".$out[1][$i]."</strong><br>";
echo "2: Счет: <strong>".$out[2][$i]."</strong><br>";
echo "3: ФИО: <strong>".$out[3][$i]."</strong><br>";
echo "4: Адрес: <strong>".$out[4][$i]."</strong><br>";
echo "5: Телефон: <strong>".$out[5][$i]."</strong><br>";
echo "6: З: <strong>".$out[6][$i]."</strong><br>";
echo "7: П: <strong>".$out[7][$i]."</strong><br><br>";


Делаю выборку в цикле и возникает следующая проблема: при отсутствии данных внутри тегов <td></td> выражение работает неправильно, происходит сдвиг данных. Как правильно составить выражение, чтобы если между тегами была пустота, не происходил сдвиг в выборке?

  Ответить  
 
 автор: AcidTrash   (29.06.2009 в 10:32)   письмо автору
 
   для: feniksua   (29.06.2009 в 02:19)
 

В паттерне вместо плюса поставьте везде звездочку *

  Ответить  
 
 автор: feniksua   (29.06.2009 в 11:22)   письмо автору
 
   для: AcidTrash   (29.06.2009 в 10:32)
 

Спасибо огромное, заработало. (Век живи, век учись).

  Ответить  
Rambler's Top100
вверх

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