Mercurial > hg > ywww
comparison xml/getAmazonInfo.php @ 5:55445b456ad0
short-circuit error response handling, add debugging
| author | robert |
|---|---|
| date | Wed, 28 Dec 2016 13:07:32 +0000 |
| parents | a6b55ae70617 |
| children | 1dfe64e365a0 |
comparison
equal
deleted
inserted
replaced
| 4:a6b55ae70617 | 5:55445b456ad0 |
|---|---|
| 1 <?php | 1 <?php |
| 2 | 2 |
| 3 $lastReqTime=0; | |
| 3 function getAmazonDet($isbn,$go,$localeIn) | 4 function getAmazonDet($isbn,$go,$localeIn) |
| 4 { | 5 { |
| 5 global $output; | 6 global $output; |
| 6 $Adefault=array( | 7 $Adefault=array( |
| 7 'language' =>'en', //what language to render the page in | 8 'language' =>'en', //what language to render the page in |
| 91 $file_data.='&'.$i.'='.$d; | 92 $file_data.='&'.$i.'='.$d; |
| 92 } | 93 } |
| 93 | 94 |
| 94 $url=aws_signed_request($ext,$parameters,$public_key,$private_key); | 95 $url=aws_signed_request($ext,$parameters,$public_key,$private_key); |
| 95 //echo $url; | 96 //echo $url; |
| 96 file_put_contents('/var/ywww/debug/phpDebug',"parms: ". | 97 file_put_contents('/var/ywww/debug/phpDebug',"parms: $go". |
| 97 print_r($parameters,TRUE)."\n",FILE_APPEND); | 98 print_r($parameters,TRUE)."\n",FILE_APPEND); |
| 98 $crl = curl_init(); | 99 $crl = curl_init(); |
| 99 $timeout = 5; | 100 $timeout = 5; |
| 100 curl_setopt ($crl, CURLOPT_URL,$url); | 101 curl_setopt ($crl, CURLOPT_URL,$url); |
| 101 curl_setopt ($crl, CURLOPT_ENCODING , "gzip"); | 102 curl_setopt ($crl, CURLOPT_ENCODING , "gzip"); |
| 102 curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1); | 103 curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1); |
| 103 curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout); | 104 curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout); |
| 105 /* $timeDiff=((int)(microtime(true)*1000))-$lastReqTime; | |
| 106 if ($timeDiff<1000) { | |
| 107 usleep((1000-$timeDiff)*1000); // microseconds | |
| 108 }*/ | |
| 104 $output = curl_exec($crl); | 109 $output = curl_exec($crl); |
| 110 //$lastReqTime=(int)(microtime(true)*1000); // milliseconds | |
| 105 curl_close($crl); | 111 curl_close($crl); |
| 106 | 112 |
| 107 /*$xml = new SimpleXMLElement("<?xml version=\"1.0\"?><ItemLookupErrorResponse xmlns=\"http://ecs.amazonaws.com/doc/2009-03-31/\"><Error><Code>AccountLimitExceeded</Code><Message>Account limit of 2056 requests per hour exceeded.</Message></Error><RequestID>290ed059-730c-4789-93b4-6d21e11053d3</RequestID></ItemLookupErrorResponse>");*/ | 113 /*$xml = new SimpleXMLElement("<?xml version=\"1.0\"?><ItemLookupErrorResponse xmlns=\"http://ecs.amazonaws.com/doc/2009-03-31/\"><Error><Code>AccountLimitExceeded</Code><Message>Account limit of 2056 requests per hour exceeded.</Message></Error><RequestID>290ed059-730c-4789-93b4-6d21e11053d3</RequestID></ItemLookupErrorResponse>");*/ |
| 108 $xml = new SimpleXMLElement($output); | |
| 109 $review = ""; | 114 $review = ""; |
| 110 set_error_handler(function () { | 115 // HST added this |
| 111 global $output; | 116 if (preg_match("<Error>",$output)) { |
| 112 file_put_contents('/var/ywww/debug/phpDebug', "Caught one: ",FILE_APPEND); | 117 $xml = new SimpleXMLElement($output); |
| 113 file_put_contents('/var/ywww/debug/phpDebug', | 118 $resName=$xml->getName(); |
| 114 print_r($output, TRUE)."\n", | 119 $code=$xml->Error->Code; |
| 115 FILE_APPEND); | 120 file_put_contents('/var/ywww/debug/phpDebug',"Losing: $resName, ". |
| 121 $xml->Error->Code."\n",FILE_APPEND); | |
| 122 } | |
| 123 else { | |
| 124 $xml = new SimpleXMLElement($output); | |
| 125 set_error_handler(function () { | |
| 126 global $output; | |
| 127 file_put_contents('/var/ywww/debug/phpDebug', | |
| 128 "Caught one?: ".$searchparameterdata, | |
| 129 FILE_APPEND); | |
| 130 file_put_contents('/var/ywww/debug/phpDebug', | |
| 131 print_r($output, TRUE)."\n", | |
| 132 FILE_APPEND); | |
| 116 } ); | 133 } ); |
| 117 $review = $xml->Items->Item->CustomerReviews->IFrameURL; | 134 $review = $xml->Items->Item->CustomerReviews->IFrameURL; |
| 118 // The above is failing repeatedly -- | 135 // The above is failing repeatedly -- |
| 119 //PHP Notice: Trying to get property of non-object in | 136 //PHP Notice: Trying to get property of non-object in |
| 120 // /var/ywww/xml/getAmazonInfo.php on line [109] | 137 // /var/ywww/xml/getAmazonInfo.php on line [109] |
| 121 // See the dumped structure at the end of this file for the | 138 // See the dumped structure at the end of this file for the |
| 122 // cause | 139 // cause |
| 123 restore_error_handler(); | 140 restore_error_handler(); |
| 124 //echo $review; | 141 //echo $review; |
| 125 $review1 = ""; | 142 $review1 = ""; |
| 126 $review2 = ""; | 143 $review2 = ""; |
| 127 $review3 = ""; | 144 $review3 = ""; |
| 145 } | |
| 128 if ($review != "") | 146 if ($review != "") |
| 129 { | 147 { |
| 130 $text = @file_get_contents($review . "&truncate=300"); | 148 $text = @file_get_contents($review . "&truncate=300"); |
| 131 $removeTop1 = preg_replace('~<div class="crIFrameHeaderLeftColumn">(.*?)<div class="crIFrameHeaderHistogram">~si', '', $text); | 149 $removeTop1 = preg_replace('~<div class="crIFrameHeaderLeftColumn">(.*?)<div class="crIFrameHeaderHistogram">~si', '', $text); |
| 132 $removeTop2 = preg_replace('~<div class="crIFrameHeaderHistogram">(.*?)<div class="crIframeReviewList">~si', '', $text); | 150 $removeTop2 = preg_replace('~<div class="crIFrameHeaderHistogram">(.*?)<div class="crIframeReviewList">~si', '', $text); |
| 233 $errorCode = $xml->Error->Code; | 251 $errorCode = $xml->Error->Code; |
| 234 //echo $errorCode; | 252 //echo $errorCode; |
| 235 | 253 |
| 236 if($errorCode != "AccountLimitExceeded") | 254 if($errorCode != "AccountLimitExceeded") |
| 237 { | 255 { |
| 238 if($go == 1) | 256 if($go == 1) { |
| 257 file_put_contents('/var/ywww/debug/phpDebug',"win: ". | |
| 258 $xml->Items->Item->ItemAttributes->Title."\n", | |
| 259 FILE_APPEND); | |
| 239 return $output; | 260 return $output; |
| 261 } | |
| 240 else | 262 else |
| 241 { | 263 { |
| 242 $title = $xml->Items->Item->ItemAttributes->Title; | 264 $title = $xml->Items->Item->ItemAttributes->Title; |
| 243 $author = $xml->Items->Item->ItemAttributes->Author; | 265 $author = $xml->Items->Item->ItemAttributes->Author; |
| 244 $binding = $xml->Items->Item->ItemAttributes->Binding; | 266 $binding = $xml->Items->Item->ItemAttributes->Binding; |
