Помогите с регуляркой

Тема в разделе "PHP", создана пользователем a_smith, 13 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. a_smith

    a_smith

    Регистр.:
    4 дек 2008
    Сообщения:
    261
    Симпатии:
    54
    Есть текстовая переменная с HTML текстом:
    <table>
    <tr>
    <td>190090</td>
    <td>9997927</td>
    <td>8jud%90rke99<td>
    <td></td>
    </tr>
    <tr>
    <td>190091</td>
    <td>9992343</td>
    <td>43lkj8dfgl409k<td>
    <td></td>
    </tr>
    ...
    </table>

    Необходимо составить регулярку, которая брала значение из первой TD соответвенно 190090 и в пустую ячейку <td></td> вставляла <input type=checkbox name=check[190090]> по всему тексту
    Т.е. на выходе должно получится:
    <table>
    <tr>
    <td>190090</td>
    <td>9997927</td>
    <td>8jud%90rke99<td>
    <td><input type=checkbox name=check[190090]>Отметить</input></td>
    </tr>
    <tr>
    <td>190091</td>
    <td>9992343</td>
    <td>43lkj8dfgl409k<td>
    <td><input type=checkbox name=check[190091]>Отметить</input></td>
    </tr>
    ...
    </table>

    Спасибо заранее. Я перечитал тут много но как-то с циклом путаюсь в регулярках...
     
  2. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    PHP:
    <?php
    $text 
    "
    <table>
    <tr>
    <td>190090</td>
    <td>9997927</td>
    <td>8jud%90rke99</td>
    <td></td>
    </tr>
    <tr>
    <td>190091</td>
    <td>9992343</td>
    <td>43lkj8dfgl409k</td>
    <td></td>
    </tr>
    </table>"
    ;
    preg_match_all("`<td>(.*?)</td>`is"$text$match);
    print(
    "<table>");
    for(
    $i 0$cnt count($match[1]);$i != $cnt;$i++) {
        print 
    "<tr>\r\n";
        print 
    "<td>" $match[1][$i] . "</td>\r\n";
        
    $i++;
        print 
    "<td>" $match[1][$i] . "</td>\r\n";
        
    $i++;
        print 
    "<td>" $match[1][$i] . "</td>\r\n";
        
    $i++;
        print 
    "<td><input type=checkbox name=check[" $match[1][$i-3] . "]>Отметить</input></td>\r\n";
        print 
    "</tr>\r\n";

    print 
    "</table>";

     
    a_smith нравится это.
Статус темы:
Закрыта.