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
Форумы портала PHP.SU :: Версия для печати :: Работа с html тегами
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Работа с html тегами

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

1. Skit - 10 Февраля, 2012 - 12:52:10 - перейти к сообщению
Здравствуйте!

Иногда приходится пользоваться прекрасными методами php5 и все было прекрасно пока я получал значение атрибутов, создавал разные условия. Сейчас я решил создать новый елемент (span) с классом и поместить его в нужное место.

Получилось вставить тэг в конец документа, но вот в нужное место не выходит, да и в конец документа вставка криво прошла, т.е. явно не иду не в том направлении.

У меня есть картинка, я хочу вытащить значение атрибута alt и вставить его в новый элемент span.

PHP:
скопировать код в буфер обмена
  1. $content = "
  2. <p><img src="/files/about.jpg" width="486" height="271" rel="externalDesc" alt="Big description for big image" />
  3. </p><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras et varius tellus. Vestibulum feugiat magna vitae nisi pulvinar sollicitudin. Integer et magna eget orci semper sagittis. Fusce interdum posuere sem, ac aliquet nunc sollicitudin nec. Fusce fringilla mollis nunc nec interdum.</p>";
  4.  

Код стыдно показывать Улыбка Чистый эксперимент, уверен он не пригодится, ну так на всякий:
PHP:
скопировать код в буфер обмена
  1. $doc = new DOMDocument;
  2. $doc->formatOutput = true;
  3. @$doc->loadHTML($content);
  4.  
  5. $img = $doc->getElementsByTagName('img');
  6. $node = $doc->getElementsByTagName('img')->item(0);
  7. foreach($img as $el) {
  8.  
  9.     $rel = $el->getAttribute('rel');
  10.    
  11.     if($rel == 'externalDesc'){
  12.        
  13.         $alt = $el->getAttribute('alt');
  14.         $element = $doc->createElement('span', $alt);
  15.         $element->setAttribute('class','externalt');
  16.        
  17.         $node = $doc->importNode($element, true);
  18.         $doc->documentElement->appendChild($node);
  19.         //$doc->insertBefore($element);
  20.         $html = $doc->saveHTML();
  21.     }
  22. }
  23. print_r($html);
  24.  

Задача воткнуть новый элемент после <img />
Я сперва не думал, что не получится, по этому масло масляное. В конце уже варианты просто перебирал.

Надеюсь мы придем к какому-то логическому завершению. Спасибо.

 

Powered by ExBB FM 1.0 RC1