2012-05-08 2 views
0

Я использую simple_html_dom, чтобы управлять введением изображений на CMS на странице. Однако я хотел бы иметь возможность обернуть любые изображения, которые еще не были обернуты в теги привязки в новом теге привязки, но я не могу решить, как обернуть элемент simple_html_dom новым тегом.PHP simple_html_dom -> обернуть элемент с новым тегом привязки

Мой код до сих пор:

$content = str_get_html($content); 
if(is_object($content)) 
{ 
    $elements = $content->find('img'); 
    foreach($elements as $element) 
    { 
/* 
GET INFORMATION ABOUT WHAT IMAGE THIS IS - ALL FINE 
*/   
$classStr = $element->class; 
     if(trim(strlen($classStr)) > 0) 
     { 
      $needle = "wp-image-"; 
      $after = substr($classStr, strpos($classStr, $needle) + strlen($needle)); 
      if(strpos($after, " ")) 
      { 
       $imageID = substr($after, 0, strpos($after, " ")); 
      } 
      else 
      { 
       $imageID = $after; 
      } 
/* 
Get new image to link to 
*/ 
$image = tona_get_image_by_id($imageID, "full"); 

/* 
CHECK IF PARENT OF IMAGE IS AN ANCHOR... IF SO CHANGE THE LINK 
*/ 

      $elementParent = $element->parent(); 
      if(isset($elementParent->href)) 
      { 
       $elementParent->href = $image["src"]; 
       $elementParent->class .= " newAnchorClass ";  
      } 
/* 
IF NOT ADD A NEW ANCHOR TAG ** HELP ** 
*/ 

      echo "IMG: " . $imageID . " " . $image["src"] . "<br/>";  
      $element->href = $image["src"]; 
     } 
    } 
} 

Заранее спасибо за вашу помощь.

+0

В чем проблема? Что не так в вашем коде? – Leri

+0

Hi PLB - Я не могу понять, как обернуть мое изображение (содержащееся в $ element) новым якорем. так что становится Tomtids

ответ

1

С documentation на вкладке «Советы»:
$e->outertext = '<div class="wrap">' . $e->outertext . '<div>'

Если вы хотите, чтобы в дальнейшем манипулировать элемент, вы можете использовать временную переменную для воссоздания РОМ. В вашем случае это будет:

// '$element' is the element to be wrapped 
$tempHtml = str_get_html('<a>' . $element->outertext . '</a>'); 
$link = $tempHtml->find('a', 0); 
// '$src' is the url of the link 
$link->href = $image['src']; 
Смежные вопросы