guvnoruk Posted June 10, 2009 Share Posted June 10, 2009 I am a complete newbie with PHP. but i am making progress. So this is how far i got. I am trying to reformat an xml feed to get it working with my flash widget. So i am using the orginal feed using PHP to format it and then use it. I used "getElementsByTagName" and formatted all what i wanted but now i just stuck with one thing. How to code so that i can get the image url from the xml feed. The problem is the img url is not something i can get by "getElementsByTagName" because its inside a TAG: i dunno if i make sense but here is the xml feed: <item> <title><![CDATA[sEXY UNIQUE PINK GOGO TOP SHORT WRAP AROUND 6 8 10 12]]></title> <link><![CDATA[http://cgi.ebay.co.uk/SEXY-UNIQUE-PINK-GOGO-TOP-SHORT-WRAP-AROUND-6-8-10-12_W0QQitemZ380126183045QQcmdZViewItemQQssPageNameZRSS:B:SILF:GB:101]]></link> <description><![CDATA[<table border="0" cellpadding="8"><tr><td><a href="http://cgi.ebay.co.uk/SEXY-UNIQUE-PINK-GOGO-TOP-SHORT-WRAP-AROUND-6-8-10-12_W0QQitemZ380126183045QQcmdZViewItemQQssPageNameZRSS:B:SILF:GB:102"><img border="0" src="http://thumbs.ebaystatic.com/pict/380126183045_0.jpg"></a></td><td><strong>£7.99</strong><br /> End Date: Sunday Jun-21-2009 18:07:40 BST<br />Buy It Now for only: £7.99<br /><a href="http://cgi.ebay.co.uk/SEXY-UNIQUE-PINK-GOGO-TOP-SHORT-WRAP-AROUND-6-8-10-12_W0QQitemZ380126183045QQcmdZViewItemQQssPageNameZRSS:B:SILF:GB:105">Buy it now</a> | <a href="http://cgi1.ebay.co.uk/ws/eBayISAPI.dll?MfcISAPICommand=MakeTrack&item=380126183045&ssPageName=RSS:B:SILF:GB:104">Add to watch list</a></td></tr></table>]]></description> <guid isPermaLink="false"><![CDATA[http://cgi.ebay.co.uk/SEXY-UNIQUE-PINK-GOGO-TOP-SHORT-WRAP-AROUND-6-8-10-12_W0QQitemZ380126183045QQcmdZViewItemQQssPageNameZRSS:B:SILF:GB:101]]></guid> <pubDate>Sat, 23 May 2009 02:02:41 BST</pubDate> <rx:BuyItNowPrice xmlns:rx="urn:ebay:apis:eBLBaseComponents">799</rx:BuyItNowPrice> <rx:CurrentPrice xmlns:rx="urn:ebay:apis:eBLBaseComponents">799</rx:CurrentPrice> <rx:EndTime xmlns:rx="urn:ebay:apis:eBLBaseComponents">1245604060000</rx:EndTime> <rx:Category xmlns:rx="urn:ebay:apis:eBLBaseComponents"><![CDATA[Women's Clothing]]></rx:Category> <rx:AuctionType xmlns:rx="urn:ebay:apis:eBLBaseComponents">Buy It Now</rx:AuctionType> <rx:ItemCharacteristic xmlns:rx="urn:ebay:apis:eBLBaseComponents">Listed with PayPal</rx:ItemCharacteristic> </item> Now This is the url i need to specify src="http://thumbs.ebaystatic.com/pict/380126183045_0.jpg, which is under the description tag. I need the value of this URL as a seprate TAG so that i can create my feed for the flash widget. The PHP Is as follows: <?php $xml = new DomDocument; $xml -> load("http://rss.api.ebay.com/ws/rssapi?FeedName=StoreItems&siteId=3&language=en-GB&output=RSS20&storeId=116907097"); $str = ""; //get elements from "<channel>" $channel=$xml->getElementsByTagName('channel')->item(0); $channel_title = $channel->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue; $channel_link = $channel->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue; $channel_desc = $channel->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue; //output elements from "<channel>" $str .= "<p><strong><a href='". $channel_link."'>".$channel_title."</a></strong>"; $str .= "<br />"; $str .= $channel_desc . "</p>" ; $node=$xml->getElementsByTagName('item'); $i=0; $str .= "<ul>"; $str .= "<list>"."\n"; foreach($node as $x){ $item_title=$x->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue; $item_link=$x->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue; $item_desc=$x->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue; $item_date=$x->getElementsByTagName('pubDate')->item(0)->childNodes->item(0)->nodeValue; $item_image=$x->preg_match('/src=['"]?([^'" >]+)['" >]/',$item_desc,$result); //$str .= "<li><a href='".$item_link."'>".$item_title ."</a></li><ul><li>"; //$str .= $item_desc . "</li></ul>"; //$str .="<list>"."\n"; $str .="<item>"."\n"; $str .="<date>".$item_date."</date>"."\n"; $str .="<headline>".$item_title."</headline>"."\n"; $str .="<image>".$item_image."</image>"."\n"; $str .="<news_text><![CDATA[".$item_desc."]]></news_text></item>"."\n"; $i++; } //$str .= "</ul>"; $str .= "</list>"; echo $str; ?> Please guys dont laugh :-) but i thought if i use $item_image=$x->preg_match('/src=[\'"]?([^\'" >]+)[\'" >]/',$item_desc,$result);, it might just work but hey it doesnt dunno what to use to get this working . I would be really greateful if someone can point me to the right direction. So in short i want to extract a URL which is under the description TAG for everything in the array. I dunno if i make sense but i think i tried my best. Regards Guvnor Quote Link to comment https://forums.phpfreaks.com/topic/161645-having-trouble-with-preg_match-please-help/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.