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";}
}
}
<IMGURL>tag or relative<PRODUCT_VARIANT>parent?