|
|
|
|
|
для: cheops
(03.02.2011 в 11:54)
| |
<?
$text=preg_replace("/(<table.+?width(:|=)(|'|\")\s*)(?:\d+\D+?)\b/is","$1 100% ",$text);
?>
|
По-моему, это универсальное решение для обоих приведенных случаев. | |
|
|
|
|
|
|
|
для: cheops
(03.02.2011 в 11:54)
| | Благодарю, похоже работает. и не такой уж сложный паттерн(( | |
|
|
|
|
|
|
|
для: Igorek
(03.02.2011 в 11:15)
| | Я думаю каждый случай следует обрабатывать отдельным регулярным выражением, т.е. как-то так
<?php
$text = '<table style="width: 1274px;" border="0" cellspacing="0" cellpadding="0">
<colgroup span="1"><col span="1" width="34">
</col><col span="1" width="423"></col>
<col span="1" width="108"></col><col span="1" width="221"></col';
$pattern = "|(<table[^>]+width:[\s]*)([\d]+[^;]+;)|is";
$text = preg_replace($pattern, "\\1 100%;", $text);
echo $text;
?>
|
а для второго случая, как-то так
<?php
$text = '<P> <TABLE cellSpacing=0 cellPadding=0 width=587 border=0 x:str>
<COLGROUP> <COL width=31> <COL width=205> <COL width=83>
<COL width=71> <COL width=68> <COL width=64> <COL width=65>
<TBODY> <TR height=37> <TD width=31 height=64 rowSpan=3>№ п/п</TD> <TD widt...';
$pattern = "|(<table[^>]+width=)([\d]+)|is";
$text = preg_replace($pattern, "\\1 100%", $text);
echo $text;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(03.02.2011 в 10:53)
| | эх... начал искать пример, натолкнулся на вариант где еще и через атрибут ширина задана, надо бы тоже поправить:
<P> <TABLE cellSpacing=0 cellPadding=0 width=587 border=0 x:str>
<COLGROUP> <COL width=31> <COL width=205> <COL width=83>
<COL width=71> <COL width=68> <COL width=64> <COL width=65>
<TBODY> <TR height=37> <TD width=31 height=64 rowSpan=3>№ п/п</TD> <TD widt...
|
ну а вообще про такой пример шла речь:
<table style="width: 1274px;" border="0" cellspacing="0" cellpadding="0">
<colgroup span="1"><col span="1" width="34"></col><col span="1" width="423"></col><col span="1" width="108"></col><col span="1" width="221"></col
|
и, еще стоит отметить, единицы измерения ширины могут быть различными (px, pt, %) | |
|
|
|
|
|
|
|
для: Igorek
(03.02.2011 в 10:50)
| | А кусочек HTML-кода с таблицей можно увидеть, чтобы было на чем воспроизвести ситуацию? | |
|
|
|
|
|
|
|
для: SHAman
(03.02.2011 в 10:38)
| | так конечно пойдет, но в таком случае для всех тэгов width сменится, а мне надо только для таблицы <table>.
хм... подумалось, может сначала вытаскивать <table ...> и в обратном вызове применять вашу функцию? | |
|
|
|
|
|
|
|
для: Igorek
(03.02.2011 в 08:19)
| |
preg_replace("/width:\s*([^;]+;)/", "width: 100%;", $text);
|
мог ошибиться в оформлении функции preg_replace; | |
|
|
|
|
|
|
| собственно сабж.
если у таблицы задан
style="другие стили; width: любое_значение_px; другие стили"
|
или так
style="width:любое_значение_px"
|
необходимо поменять width на другое значение. например 100%
будьте так добры подскажите правильную регулярку для такого случая. | |
|
|
|
|