Remove duplicate string from variable in PHP

Viewed 192

I am looking for a way to remove duplicate lines from a variable:

$x = '<IMGURL>one.jpg</IMGURL>';
$x .= '<IMGURL>two.jpg</IMGURL>';
//remove the following line:
$x .= '<IMGURL>one.jpg</IMGURL>';
$x .= '<IMGURL>third.jpg</IMGURL>';

The output should be:

$x = '<IMGURL>one.jpg</IMGURL><IMGURL>two.jpg</IMGURL><IMGURL>third.jpg</IMGURL>';

Maybe some regex does the trick?

Edit:

Some more info

The source XML:

<?xml version=".0" encoding="utf-8"?>
<SHOP>
  <SHOPITEM>
    <name>BLUE product</name>
    <IMGURL>main_picture.jpg</IMGURL>
    <PRODUCT_VARIANT id="2">
      <name>blue L</name>
      <IMGURL>blue.jpg</IMGURL>
    </PRODUCT_VARIANT>
    <PRODUCT_VARIANT id="3">
      <name>BLUE XL</name>
      <IMGURL>blue.jpg</IMGURL>
    </PRODUCT_VARIANT>
    <PRODUCT_VARIANT id="4">
      <name>BLUE XXL</name>
      <IMGURL>blue.jpg</IMGURL>
    </PRODUCT_VARIANT>
  </SHOPITEM>
</SHOP>

From this I need two unique jpg:

  • main_picture.jpg
  • blue.jpg

The interesting part of the module what is processing the source XML:

foreach($xml->SHOPITEM as $product){
if(isset($product->IMGURL)){$xml_content .= '<IMAGE>'.htmlspecialchars($product->IMGURL).'</IMAGE>'."\n";}

foreach($product->variant as $option){
              if(isset($option->IMGURL)){$xml_content .= '<IMAGE>'.htmlspecialchars($option->IMGURL).'</IMAGE>'."\n";}
                      }
}
1 Answers
Related