ryanschefke Posted September 23, 2008 Share Posted September 23, 2008 Hello, I am playing with an API from a company that makes a SOAP request and an XML response is sent back. I am not sure how to use/interpret the response and need some help. You can see the output here: http://www.leadliaison.com/test_hooversAPI.php. The script is below, which dumps this output on the above link to the screen. For now, I just want to print something simple like annual sales, which according to the providers API has the XML output parameters of: \return\resultSet\hit\company-results\finsales <form method="post" action="test_hooversAPI.php"> <table border=0> <tr> <td> <input type="radio" name="methodName" value="FindCompanyByKeyword">FindCompanyByKeyword </td> </tr> <tr> <td> <input type="radio" name="methodName" value="AdvancedCompanySearch">AdvancedCompanySearch </td> </tr> <tr> <td> <input type="radio" name="methodName" value="GetCompanyDetail">GetCompanyDetail </td> </tr> <tr> <td> <input type="radio" name="methodName" value="GetAdvancedSearchLookups">GetAdvancedSearchLookups </td> </tr> <tr> <td> <input type="radio" name="methodName" value="GetPersonDetail">GetPersonDetail </td> </tr> <tr> <td> <input type="radio" name="methodName" value="AdvancedPersonSearch">AdvancedPersonSearch </td> </tr> <tr> <td> <input type="radio" name="methodName" value="FindPersonByKeyword">FindPersonByKeyword </td> </tr> <tr> <td> <input type="submit" value="Submit"> </td> </tr> </table> </form> <br/> <hr/> <br/> <?php if($_SERVER['REQUEST_METHOD'] == 'POST') { print($_POST['methodName']); try { //Create your SoapClient and point to Hapi.wsdl $client = new SoapClient( 'http://hapi-dev.hoovers.com/axis2/Hapi.wsdl', array('trace' => true, 'exceptions' => true) ); //Create the SoapHeader once //The header contains your API KEY $apiKeySoapHeader = new SoapHeader('http://webservice.hoovers.com', 'API-KEY', 'MYKEYHERE'); //Call the chosen web service if($_POST['methodName'] == 'FindCompanyByKeyword') { //Create find company by keyword params $parameters = array( "keyword" => 'Hoover\'s Inc' ); } elseif($_POST['methodName'] == 'AdvancedCompanySearch') { //Search for companies that have 10 to 100 employees in Dallas $parameters = array( "bal" => array( "companysize" => array( "employeesFrom" => 10, "employeesTo" => 100 ), "location" => array( "city" => 'Dallas' ) ) ); } elseif($_POST['methodName'] == 'GetCompanyDetail') { $parameters = array( "uniqueId" => '809194728' ); } elseif($_POST['methodName'] == 'GetPersonDetail') { $parameters = array( "uniqueId" => '2059663' ); } elseif($_POST['methodName'] == 'AdvancedPersonSearch') { $parameters = array( "bal" => array( "companysize" => array( "employeesFrom" => 10, "employeesTo" => 100 ), "location" => array( "city" => 'Dallas' ) ) ); } elseif($_POST['methodName'] == 'FindPersonByKeyword') { $parameters = array( "keyword" => 'Hoover\'s' ); } elseif($_POST['methodName'] == 'GetAdvancedSearchLookups') { //TODO: Might need to be NULL...wait until new version of HAPI goes to SoDevHAPI $parameters = array(); } //Use __soapCall instead of directly calling the method, //as we must pass the API-KEY in the Header $result = $client->__soapCall($_POST['methodName'], array($parameters), NULL, $apiKeySoapHeader); //Now that you have the result data, use it //The data will come back as an object using the names defined in the WSDL dump($result); //echo $industries->return['sIAC']; //echo $result['return']['industries']['sIAC']; //echo "Name: " . $result->return->keyNumbers->fiscal-period . "\n"; //TEMP var_dump($result->return->resultSet); } catch (Exception $e) { print($e); print($client->__getLastRequest()); } } ?> <?php ///////////////// // Much thanks to the group on php.net // Specific code taken from http://us3.php.net/manual/en/function.var-dump.php#80288 //////////////// //////////////////////////////////////////////////////// // Function: dump // Inspired from: PHP.net Contributions // Description: Helps with php debugging function dump(&$var, $info = FALSE) { $scope = false; $prefix = 'unique'; $suffix = 'value'; if($scope) $vals = $scope; else $vals = $GLOBALS; $old = $var; $var = $new = $prefix.rand().$suffix; $vname = FALSE; foreach($vals as $key => $val) if($val === $new) $vname = $key; $var = $old; echo "<pre style='margin: 0px 0px 10px 0px; display: block; background: white; color: black; font-family: Verdana; border: 1px solid #cccccc; padding: 5px; font-size: 10px; line-height: 13px;'>"; if($info != FALSE) echo "<b style='color: red;'>$info:</b><br>"; do_dump($var, '$'.$vname); echo "</pre>"; } //////////////////////////////////////////////////////// // Function: do_dump // Inspired from: PHP.net Contributions // Description: Better GI than print_r or var_dump function do_dump(&$var, $var_name = NULL, $indent = NULL, $reference = NULL) { $do_dump_indent = "<span style='color:#eeeeee;'>|</span> "; $reference = $reference.$var_name; $keyvar = 'the_do_dump_recursion_protection_scheme'; $keyname = 'referenced_object_name'; if (is_array($var) && isset($var[$keyvar])) { $real_var = &$var[$keyvar]; $real_name = &$var[$keyname]; $type = ucfirst(gettype($real_var)); echo "$indent$var_name <span style='color:#a2a2a2'>$type</span> = <span style='color:#e87800;'>&$real_name</span><br>"; } else { $var = array($keyvar => $var, $keyname => $reference); $avar = &$var[$keyvar]; $type = ucfirst(gettype($avar)); if($type == "String") $type_color = "<span style='color:green'>"; elseif($type == "Integer") $type_color = "<span style='color:red'>"; elseif($type == "Double"){ $type_color = "<span style='color:#0099c5'>"; $type = "Float"; } elseif($type == "Boolean") $type_color = "<span style='color:#92008d'>"; elseif($type == "NULL") $type_color = "<span style='color:black'>"; if(is_array($avar)) { $count = count($avar); echo "$indent" . ($var_name ? "$var_name => ":"") . "<span style='color:#a2a2a2'>$type ($count)</span><br>$indent(<br>"; $keys = array_keys($avar); foreach($keys as $name) { $value = &$avar[$name]; do_dump($value, "['$name']", $indent.$do_dump_indent, $reference); } echo "$indent)<br>"; } elseif(is_object($avar)) { echo "$indent$var_name <span style='color:#a2a2a2'>$type</span><br>$indent(<br>"; foreach($avar as $name=>$value) do_dump($value, "$name", $indent.$do_dump_indent, $reference); echo "$indent)<br>"; } elseif(is_int($avar)) echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar).")</span> $type_color$avar</span><br>"; elseif(is_string($avar)) echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar).")</span> $type_color\"$avar\"</span><br>"; elseif(is_float($avar)) echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar).")</span> $type_color$avar</span><br>"; elseif(is_bool($avar)) echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar).")</span> $type_color".($avar == 1 ? "TRUE":"FALSE")."</span><br>"; elseif(is_null($avar)) echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar).")</span> {$type_color}NULL</span><br>"; else echo "$indent$var_name = <span style='color:#a2a2a2'>$type(".strlen($avar).")</span> $avar<br>"; $var = $var[$keyvar]; } } ?> Quote Link to comment Share on other sites More sharing options...
Q695 Posted October 30, 2008 Share Posted October 30, 2008 Try this out, because I had a very similar issue: if ($cost>=1) { if ($cost=abs($cost)) { $cost="$".$cost.".00"; } else { $cost="$".$cost."0"; } Quote Link to comment Share on other sites More sharing options...
Q695 Posted October 30, 2008 Share Posted October 30, 2008 if ($cost>=1) { if ($cost==round($cost)) { $cost="$".$cost.".00"; } else { $cost="$".$cost."0"; } 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.