experts585 Posted November 9, 2010 Share Posted November 9, 2010 hi i am using yahoo api search i put a paragraph in a text area explode with ".Dot " and than serah each sentance one by one in yahoo api. Problem is i want when its get all sentancce in one site its give me result one time but my code give result as foreach loop end if it explode 5 time it give me same result 5 time but i want only one time some one help me $queryz=$_REQUEST['query']; $queryz1=explode('.',$queryz); foreach ($queryz1 as $k=>$v){ $q = build_query($v); //exit(); performTask($q); } // To cache, we save the result xml to a filename that is a // hash of the query string. Note the use of tempnam() and // rename() to make sure the file is created atomically. function performTask($q=""){ $cache_file = '/tmp/yws_'.md5('http://search.yahooapis.com/WebSearchService/V1/webSearch'.$q); if(file_exists($cache_file) && filemtime($cache_file) > (time()-7200)) { $raw = file_get_contents($cache_file); } else { $raw = file_get_contents('http://search.yahooapis.com/WebSearchService/V1/webSearch'.$q); $tmpf = tempnam('/tmp','YWS'); file_put_contents($tmpf, $raw); @rename($tmpf, $cache_file); } $xml = simplexml_load_string($raw); // Load up the root element attributes foreach($xml->attributes() as $name=>$attr) $res[$name]=$attr; $first = $res['firstResultPosition']; $last = $first + $res['totalResultsReturned']-1; echo "<p>Matched ${res[totalResultsAvailable]}, showing $first to $last</p>\n"; if(!empty($res['ResultSetMapUrl'])) { echo "<p>Result Set Map: <a href=\"${res[ResultSetMapUrl]}\">${res[ResultSetMapUrl]}</a></p>\n"; } $stored=""; for($i=0; $i<$res['totalResultsReturned']; $i++) { foreach($xml->Result[$i] as $key=>$value) { if(stristr($key,'ClickUrl')){ if(strpos($stored,$value)){ continue; } } if(stristr($key,'Title')) echo "<a href=\"$value\">$value</a> <br /> \n"; if(stristr($key,'ClickUrl')){echo "Url: <a href=\"$value\">$value</a> <br /> \n"; $stored.=$value;} if(stristr($key,'Summary')) echo "$value <br /> \n"; if(stristr($key,'ModificationDate')) echo "Update: $value From Yahoo <br /> \n"; } echo "<hr />\n"; } next_prev($res, $first, $last); } done(); ?> Quote Link to comment Share on other sites More sharing options...
experts585 Posted November 10, 2010 Author Share Posted November 10, 2010 is there any person who guide me Quote Link to comment 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.