andry
Новичок
preg_replace. Один рег+однинаковые данные!=однинаковый результат!?
В PCRE новичок, просьба не пинать.
Смысл рега(может проще можно?):
Проверить есть-ли атрибут class у клетки, если нет, то проставить. Потом вырезать ширину и высоту у клетки.
Код:
$txt = preg_replace("!<td(.*?)>(.*?)</td>!sie","'<td'.check_atr('\\1').'>\\2</td>'", $txt);
function check_atr($txt){
if(stristr($txt, "class=")===false){
$txt .= " class=tabcontent";
}
return preg_replace("'(width|height)=(\d+)'si", "", $txt);
}
На входе:
<TR> <TD class=tabheader>qq</TD> <TD class=tabheader>qq</TD></TR> <TR> <TD class=tabcontent>2</TD> <TD class=tabcontent>2</TD></TR>
На выходе:
<TR> <td class=tabcontent>qq</td> <td class=tabheader>qq</td></TR> <TR> <td class=tabcontent>2</td> <td class=tabcontent>2</td></TR>
Т.е. он посчитал, что у первой клетки нет атрибутов!!! И заменил класс.
Где грабли?
Заранее спасибо!
В PCRE новичок, просьба не пинать.
Смысл рега(может проще можно?):
Проверить есть-ли атрибут class у клетки, если нет, то проставить. Потом вырезать ширину и высоту у клетки.
Код:
$txt = preg_replace("!<td(.*?)>(.*?)</td>!sie","'<td'.check_atr('\\1').'>\\2</td>'", $txt);
function check_atr($txt){
if(stristr($txt, "class=")===false){
$txt .= " class=tabcontent";
}
return preg_replace("'(width|height)=(\d+)'si", "", $txt);
}
На входе:
<TR> <TD class=tabheader>qq</TD> <TD class=tabheader>qq</TD></TR> <TR> <TD class=tabcontent>2</TD> <TD class=tabcontent>2</TD></TR>
На выходе:
<TR> <td class=tabcontent>qq</td> <td class=tabheader>qq</td></TR> <TR> <td class=tabcontent>2</td> <td class=tabcontent>2</td></TR>
Т.е. он посчитал, что у первой клетки нет атрибутов!!! И заменил класс.
Где грабли?
Заранее спасибо!