Stò perdendo tempo e non riesco a capire come la funzione sotto riportata funziona benissimo su Php 5.3.3 mentre non va sulla 5.2.6
Codice PHP:
function getICEcatProductSpecs($ean, $drawdescription = 0, $drawpicture = 0) { // Username and password for usage with ICEcat $username = "Your ICEcat username goes here"; $password = "Your ICEcat password goes here"; // Return 0 and exit function if no EAN available if($ean == null) { return 0; } // Get the product specifications in XML format $context = stream_context_create(array( 'http' => array( 'header' => "Authorization: Basic " . base64_encode($username.":".$password) ) )); $data = file_get_contents('http://data.icecat.biz/xml_s3/xml_server3.cgi?ean_upc='.$ean.';lang=nl;output=productxml', false, $context); $xml = new SimpleXMLElement($data); // Create arrays of item elements from the XML feed $productPicture = $xml->xpath("//Product"); $productDescription = $xml->xpath("//ProductDescription"); $categories = $xml->xpath("//CategoryFeatureGroup"); $spec_items = $xml->xpath("//ProductFeature"); //Draw product specifications table if any specs available for the product if($spec_items != null) { $categoryList = array(); foreach($categories as $categoryitem) { $catId = intval($categoryitem->attributes()); $titleXML = new SimpleXMLElement($categoryitem->asXML()); $title = $titleXML->xpath("//Name"); $catName = $title[0]->attributes(); //echo $catId . $catName['Value']. "
"; $categoryList[$catId] = $catName['Value']; } $specs = "<table class='productspecs'>"; $i = 0; $drawnCategories = array(); foreach($spec_items as $item) { $specValue = $item->attributes(); $titleXML = new SimpleXMLElement($item->asXML()); $title = $titleXML->xpath("//Name"); $specName = $title[0]->attributes(); $specCategoryId = intval($specValue['CategoryFeatureGroup_ID']); if($specName['Value'] != "Source data-sheet") { $class = $i%2==0?"odd":"even"; $specs .= "<tr class='".$class."'> <td> <table>"; if(!in_array($specCategoryId, $drawnCategories)) { $specs .= " <tr class='speccategory'> <th><h3>".$categoryList[$specCategoryId]."</h3></th> </tr>"; $drawnCategories[$i] = $specCategoryId; } $specs .= " <tr> <th>".utf8_decode($specName['Value']).":</th> </tr> <tr> <td>"; if($specValue['Presentation_Value'] == "Y") { $specs .= "Ja [img]".SCRIPT_ROOT."images/check_green.png[/img]"; } else if($specValue['Presentation_Value'] == "N") { $specs .= "Nee [img]".SCRIPT_ROOT."images/check_red.png[/img]"; } else { $specs .= str_replace('\n', '
', utf8_decode($specValue['Presentation_Value'])); } $specs .= "</td> </tr> </table> </td> </tr>"; } $i++; } $specs .= "</table>"; //Draw product description and link to manufacturer if available if( $drawdescription != 0) { foreach($productDescription as $item) { $productValues = $item->attributes(); if($productValues['URL'] != null) { $specs .= "<p id='manufacturerlink'>[url='".$productValues[']Productinformation from manufacturer[/url]</p>"; } if($productValues['LongDesc'] != null) { $description = utf8_decode(str_replace('\n', '', $productValues['LongDesc'])); $description = str_replace('[b]', '[b]', $description); $description = str_replace('[B]', '[b]', $description); $description = str_replace('[/b]', '[/b]', $description); $specs .= "<p id='manudescription'>".$description."</p>"; } } } //Draw product picture if available if( $drawdescription != 0) { foreach($productPicture as $item) { $productValues = $item->attributes(); if($productValues['HighPic'] != null) { $specs .= "<div id='manuprodpic'>[img]".$productValues[[/img]</div>"; } } } return $specs; } else { return 0; } }