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

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

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

 

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

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

тема: Как из таблицы вес товара в отдельную переменную вытащить
 
 автор: BArt Simpson   (10.12.2006 в 21:10)   письмо автору
 
 

вот таблица:

<table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#CCCCCC">
<tr><td colspan="2" bgcolor="#FFFFFF"><strong>Характеристики</strong></td> </tr> 
<tr> <td class=catalogue bgcolor="#FFFFFF" width="20%">Корпус</td> <td class=catalogue bgcolor="#FFFFFF">Металлический <BR></td> </tr> 
<tr> <td class=catalogue bgcolor="#FFFFFF" width="20%">Направленность</td> <td class=catalogue bgcolor="#FFFFFF">Однонаправленный <BR></td> </tr> 
<tr> <td class=catalogue bgcolor="#FFFFFF" width="20%">Тип микрофона</td> <td class=catalogue bgcolor="#FFFFFF">Динамический <BR></td> </tr>
 <tr> <td class=catalogue bgcolor="#FFFFFF" width="20%">Разъемы</td> <td class=catalogue bgcolor="#FFFFFF">XLR (для подключения шнура к микрофону), штекер 1/4" (6.3 мм) для подключения к звуковой карте, переходник на 3.5 мм miniJack в комплекте. <BR></td> </tr>
 <tr> <td class=catalogue bgcolor="#FFFFFF" width="20%">Частотный диапазон микрофона</td> <td class=catalogue bgcolor="#FFFFFF">50 Гц - 15 кГц <BR></td> </tr> 
<tr> <td class=catalogue bgcolor="#FFFFFF" width="20%">Сопротивление</td> <td class=catalogue bgcolor="#FFFFFF">600 Ом <BR></td> </tr>
 <tr> <td class=catalogue bgcolor="#FFFFFF" width="20%">Чувствительность</td> <td class=catalogue bgcolor="#FFFFFF">-72 дБ ± 3 дБ @ 1 кГц <BR></td> </tr> 
<tr> <td class=catalogue bgcolor="#FFFFFF" width="20%">Длина кабеля</td> <td class=catalogue bgcolor="#FFFFFF">5 метров <BR></td> </tr> 
<tr> <td class=catalogue bgcolor="#FFFFFF" width="20%">Размеры упаковки</td> <td class=catalogue bgcolor="#FFFFFF">23.5 х 11 х 6.8 см <BR></td> </tr> 
<tr> <td class=catalogue bgcolor="#FFFFFF" width="20%">Вес брутто</td> <td class=catalogue bgcolor="#FFFFFF">0.532 кг <BR></td> </tr> </table>



как из неё вытащить вес в переменную? соответственно только значение без "кг"

   
 
 автор: kasmanaft   (10.12.2006 в 21:19)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 21:10)
 

Вот так, например:

<?
$text 
'<table ........ </table>';
preg_match("#Вес брутто</td>[^>]+>([\d\.]+) кг#s"$text$regs);
echo 
$regs[1];
?>

   
 
 автор: BArt Simpson   (10.12.2006 в 21:28)   письмо автору
 
   для: kasmanaft   (10.12.2006 в 21:19)
 

там "вес" с разными приставками например:
Вес брутто 2.6 кг
Вес (с подставкой) : 2.6 кг
Размеры и вес: 360x267x25.4-34 мм, 2.6 кг

нужно чтоб смотрел наличае слова вес и из соседней ячейки брал значение

и удалить эту строку из таблици

   
 
 автор: BArt Simpson   (10.12.2006 в 22:26)   письмо автору
 
   для: kasmanaft   (10.12.2006 в 21:19)
 

Помогите плиз

   
 
 автор: kasmanaft   (10.12.2006 в 22:34)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 22:26)
 

Тогда можно так попробовать:

#вес.*?</td>[^>]+>([\d\.]+)#is

>> и удалить эту строку из таблици
Нужно удалить конкретную строку или все, где встречается "вес"?

   
 
 автор: BArt Simpson   (10.12.2006 в 22:38)   письмо автору
 
   для: kasmanaft   (10.12.2006 в 22:34)
 

Ту из которой берётся значение

   
 
 автор: kasmanaft   (10.12.2006 в 23:13)   письмо автору
 
   для: BArt Simpson   (10.12.2006 в 22:38)
 

Было бы проще удалить строки после ...

<?
$text 
'<table ...... </table>';
$masses = array();
function 
replace($var)
{
    global 
$masses;
    if (!empty(
$var[1]))
        
$masses[] = $var[1];
    return 
'';

echo 
preg_replace_callback("#<tr>[\s]*<td[^>]+>[^<>]*вес[^<>]*</td>[^>]+>([\d\.]+).*?</tr>#is""replace"$text);
echo 
"<pre>"print_r($masses); echo "</pre>";
?>

Из таблицы будут удалены все строки, где встречается вес, в массив $masses добавлены эти веса.
Если не то, опишите для чего это все нужно, может быть можно сделать по-другому

Или в таблице может быть всего одна строка с весом? (а вообще, если и так, то можно заменить массив строкой и использовать эту конструпцию... по-другому в один заход и удалить и взять значение не получится)

   
 
 автор: BArt Simpson   (10.12.2006 в 23:59)   письмо автору
 
   для: kasmanaft   (10.12.2006 в 23:13)
 

Нужно выделить один вес из товара, описание товаров обрабатываются массивом, в разных описаниях товаров встречается "вес брутто", где-то "вес без аккумулятора", где-то "Вес (с подставкой) :". Выделить в отдельную переменную нужно для записи в отдельную ячейку csv файла, для дальнейшего импортирования в 1с, и для возможности определения веса заказа

   
Rambler's Top100
вверх

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