Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Кто ищет? - курим косяк

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: php замена формирование походу .
reslear
Отправлено: 23 Июля, 2011 - 01:09:30
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


Всем привет!

у меня к примеру есть
PHP:
скопировать код в буфер обмена
  1. $gg = '
  2. .bf {border-style: solid;
  3. border-color: #FF0066;
  4. border-width: 1px;
  5. padding: 2px 4px;
  6. }
  7. .fefe {border-style: solid;
  8. border-color: #FF0055;
  9. border-width: 5px;
  10. display: none;
  11. }
  12. ';


нужно найти class(к примеру .bf в нём solid , #FF0066 , 1px и остальное padding: 2px 4px;) всё это кинуть в переменную
что бы получить например :
CODE (html):
скопировать код в буфер обмена
  1. border: 1px solid #b8b8b8;


PHP:
скопировать код в буфер обмена
  1. $gg = $class.'{border:'.$size.' '.$line.' '.$color.$ostalnoe.'}';


проблема в том что код может быть разный это и класс и размер и ещё вот так может
быть
CODE (html):
скопировать код в буфер обмена
  1. font-family: Verdana, Arial, Helvetica, sans-serif;
  2. font-size: 10pt;
  3. font-weight: bold


меняться на

CODE (html):
скопировать код в буфер обмена
  1. font:bold 10pt Verdana,Arial,Helvetica,sans-serif


Зарание большое спасибо, + от меня, всех кто помогал запишу в авторы!

(Отредактировано автором: 23 Июля, 2011 - 01:11:06)

 
 Top
OrmaJever Модератор
Отправлено: 23 Июля, 2011 - 01:30:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PHP:
скопировать код в буфер обмена
  1. $gg = '
  2. .bf {border-style: solid;
  3. border-color: #FF0066;
  4. border-width: 1px;
  5. padding: 2px 4px;
  6. }
  7. .fefe {border-style: solid;
  8. border-color: #FF0055;
  9. border-width: 5px;
  10. display: none;
  11. }
  12. ';
  13. $class = '.fefe';
  14. preg_match('#'.$class.'(\s+)?\{(.+?)\}#is', $gg, $param);
  15. $str = explode(';', str_replace("\n", '', $param[2]));
  16. for($i=0;$i<sizeof($str);++$i) {
  17.         list($key, $value) = explode(':', $str[$i]);
  18.    if(strpos($key, '-') !== false) {
  19.         list($a,$b) = explode('-', $key);
  20.         $x[$a][$b] = $value;
  21.    }
  22. }
  23. print_r($x);

как вариант получить двухмерный масив такого вида
CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [border] => Array
  3.         (
  4.             [style] =>  solid
  5.             [color] =>  #FF0055
  6.            [width] =>  5px
  7.         )
  8.  
  9. )


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
reslear
Отправлено: 23 Июля, 2011 - 20:30:54
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


Спасибо) ок, а какая переменная для получения?? переменная[border][style] ????
а и ещё $class = '.fefe'; может быть разной и я не узнаю какой класс и ещё может быть
$class = '#fefe'; тоесть id как мне сделать поиск от # или . до {
 
 Top
OrmaJever Модератор
Отправлено: 23 Июля, 2011 - 20:38:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




reslear пишет:
Спасибо) ок, а какая переменная для получения?? переменная[border][style] ????

ну получится двухмерный масив
PHP:
скопировать код в буфер обмена
  1. $x['border']['style']
  2. $x['border']['color']
  3. $x['border']['width']

если клас будет содержать несколько таких свойств, например
CODE (htmlphp):
скопировать код в буфер обмена
  1. .fefe {border-style: solid;
  2. border-color: #FF0055;
  3. border-width: 5px;
  4. display: none;
  5. font-family: Verdana, Arial, Helvetica, sans-serif;
  6. font-size: 10pt;
  7. font-weight: bold
  8. }

то масив будет такой
CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [border] => Array
  3.         (
  4.             [style] =>  solid
  5.             [color] =>  #FF0055
  6.            [width] =>  5px
  7.         )
  8.  
  9.     [font] => Array
  10.         (
  11.             [family] =>  Verdana, Arial, Helvetica, sans-serif
  12.             [size] =>  10pt
  13.             [weight] =>  bold
  14.         )
  15.  
  16. )

(Добавление)
reslear пишет:
а и ещё $class = '.fefe'; может быть разной и я не узнаю какой класс и ещё может быть
$class = '#fefe'; тоесть id как мне сделать поиск от # или . до {

а вы пробовали? Подмигивание так тоже должно работать


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
reslear
Отправлено: 23 Июля, 2011 - 20:47:53
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


ну я так и ставил $x['border']['style'].$x['border']['color'].$x['border']['width']
получаю только solid
что -то это
PHP:
скопировать код в буфер обмена
  1. $txt='.gert{';
  2.  
  3.   $re1='.*?';
  4.   $re2='((?:[a-z][a-z]+))';
  5.  
  6.   if ($c=preg_match_all ("/".$re1.$re2."/is", $txt, $matches))
  7.   {
  8.       $word1=$matches[1][0];
  9.       print "($word1) \n";
  10.   }
  11.  


этим я получаю gert

как мне совместить

(Отредактировано автором: 23 Июля, 2011 - 20:49:05)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB