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 :: Работа с html тегами

 PHP.SU

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


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

> Описание: Создание элемента и копирование его в контент
Skit
Отправлено: 10 Февраля, 2012 - 12:52:10
Post Id



Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Март 2011  
Откуда: Siberia


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




Здравствуйте!

Иногда приходится пользоваться прекрасными методами 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 />
Я сперва не думал, что не получится, по этому масло масляное. В конце уже варианты просто перебирал.

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

(Отредактировано автором: 12 Февраля, 2012 - 16:02:42)



-----
Человек способен на все.
Пока не начнет это делать.
Лакшми Нараяна прабху
 
 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