PHP - Xml Webservice Process Into String??
this retrieves data from a webservice at Library of Congress
for example this here http://www.loc.gov/standards/sru/simple.html What I want to do is process the XML? into a string of usable text to put in a mysql database Am I getting XML back or what? save it and run it to see. In firefox, it shows xml headers, in chrome just the text elements. <?PHP //from here http://www.devshed.com/c/a/PHP/Fetching-Search-Results-as-Serialized-Arrays-with-Yahoo-Web-Services-and-PHP-5/1/ //http://php.net/manual/en/book.simplexml.php // example using LOC SRU Search Web Service - search results are displayed in raw XML format try{ $request='http://z3950.loc.gov:7090/voyager?version=1.1&operation=searchRetrieve&query=dinosaur&startRecord=2&maximumRecords=5'; // trigger the http request if(!$results=file_get_contents($request)){throw new Exception('Error requesting LOC SRU Web service');} // display the results in XML format header('Content-type:text/xml;charset=iso-8859-1'); echo $results; }//end of try catch(Exception $e){echo $e->getMessage();exit();} $xml = simplexml_load_string($result); print_r($xml); //print_r ($xmlarray); ?> Similar TutorialsHello, I'm trying to get webservice response in xml format. I'm getting the response but it's not in xml. It's just text. Can someone please look at the code ? <?php $targeturl="https://api.com"; $DevKey= "xxxxx"; // return xml feed $ch = curl_init($targeturl); curl_setopt($ch, CURLOPT_POST, FAlSE); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: '.$DevKey)); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $response = curl_exec($ch); $xml = new SimpleXMLElement($response); curl_close($ch); echo $response; // will print in browser all country codes in an xml format /* ADD YOUR OWN CODE HERE TO DO WHAT YOU WANT WITH THE RESPONSE. MAYBE SAVE RESULTS TO A FILE OR THE PARSE THE RESULTS INTO A DATABASE? */ ?>
in a B2B scenario http://myserver:81/star_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&UserName=user&Password=password
Allows the validation of a client by card number It is returned if the card is active (if the order is placed by the method ClientByNumCard - <Activ_Card>Y</ Activ_Card >) It is returned if the client is active ( <Activ_Card >Y</Activ_Card >) In case of success, _ID data is returned XML order example:
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://platf.com/ClientUI"> <soap:Body> <tns:ClientByNumCard_Input> <tns:N_Card>123456789</tns:N_Card> </tns:ClientNumCard_Input> </soap:Body> </soap:Envelope>
Response Envelope <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <ns: ClientByNumCard _Output xmlns:ns="http://plaf.com/ClientUI"> <ns:Error_spcCode>0</ns:Error_spcCode> <ns:Error_spcMessage>0</ns:Error_spcMessage> <ListIo xmlns="http://www.platf.com/xml/xxx%20yyyy%20%20G%20IO"> <CartaoClienteGeral> <Activ_Card>Y</Activ_Card> <ListOfClients> <ClientMember> <ID>1-AVG-22020</ID> <N_Client>23654</N_Client> <N_ClientS>0</N_ClientS> <Activ_Client>Y</Activ_Client> <ID>130562</ID> </ ClientMember > </ListOfClients> </CartaoClienteGeral> </ListIo> </ns:ClientByNumCard_Output> </SOAP-ENV:Body> </SOAP-ENV:Envelope> any ideas how to make a simple class in php?
in a B2B scenario http://myserver:81/star_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&UserName=user&Password=password
Allows the validation of a client by card number It is returned if the card is active (if the order is placed by the method ClientByNumCard - <Activ_Card>Y</ Activ_Card >) It is returned if the client is active ( <Activ_Card >Y</Activ_Card >) In case of success, _ID data is returned XML order example:
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://platf.com/ClientUI"> <soap:Body> <tns:ClientByNumCard_Input> <tns:N_Card>123456789</tns:N_Card> </tns:ClientNumCard_Input> </soap:Body> </soap:Envelope>
Response Envelope <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <ns: ClientByNumCard _Output xmlns:ns="http://plaf.com/ClientUI"> <ns:Error_spcCode>0</ns:Error_spcCode> <ns:Error_spcMessage>0</ns:Error_spcMessage> <ListIo xmlns="http://www.platf.com/xml/xxx%20yyyy%20%20G%20IO"> <CartaoClienteGeral> <Activ_Card>Y</Activ_Card> <ListOfClients> <ClientMember> <ID>1-AVG-22020</ID> <N_Client>23654</N_Client> <N_ClientS>0</N_ClientS> <Activ_Client>Y</Activ_Client> <ID>130562</ID> </ ClientMember > </ListOfClients> </CartaoClienteGeral> </ListIo> </ns:ClientByNumCard_Output> </SOAP-ENV:Body> </SOAP-ENV:Envelope> any ideas how to make a simple class in php?
Any charitable soul who can help me? I've been having this problem for days and I can't solve it. I would be forever grateful if anyone could help I already checked in phpinfo ()and the class soap client is enabled
the request that I 'm making is on another domain with port 81 (this domain has my ip on the withlisted) and on my domain I use security certificate. Is it around? anyway wsdl is he
$client = new SoapClient('https://dekrainspecoes.pt/acp/PROD_CustomUI_ACP_Member_Validation_WS.WSDL'); if (!empty($result->QueryByNumCartao_Output->Cartao_Ativo)) { echo 'The userId : '.$result->QueryByNumCartao_Output ->Pessoa_ID; } $JSON = json_encode($result); I'm trying to access the agemni.com webservice using php which has been a very hard since it is wrriten in .net <?php $client = new SoapClient("http://agemni.com/AgemniWebservices/service1.asmx?WSDL", array('trace' => 1)); $options->strUsername = "karth"; $options->strPassword = "7pk6Xc8o"; $options->strCompanyName = "webloon"; $options->objecttype = 2; $options->keys = array("fname", "lname", "phone", "zip", "area id", "lead id", "contactdate"); $options->values = array("John", "Doe", "859-333-3333", "40332", "12345", "28222", "4/10/2010"); $validate = $client->ValidateEntity($options); echo '<pre>'; echo var_dump($validate); echo '</pre>'; echo '<br><br>'; echo htmlspecialchars($client->__getLastRequest()); ?> I was able to connect using the credentials but I get a error, Conversion from type 'XmlNode()' to type 'String' is not valid. This is the relevant part from the getType method. Code: [Select] [3]=> string(18) "string statusCodes" [4]=> string(154) "struct ValidateEntity { string strUsername; string strPassword; string strCompanyName; int objecttype; ArrayOfAnyType keys; ArrayOfAnyType values; }" [5]=> string(43) "struct ArrayOfAnyType { anyType anyType; } Anyone knows how to pass ArrayOfAnyType using php? Thank you. Hi all, I need help regarding a web service that sends info and returns info. It utilises SOAP and WSDL. Afterwards it prints the return info into html/php. It always shows the error below and I think that I am forgetting something or have written something wrong. Code: [Select] Fatal error: Uncaught SoapFault exception: [Invalid Login] (null) in /home/admin/mydomain.com/por.php:5 Stack trace: #0 [internal function]: SoapClient->__call('optionalinfo', Array) #1 /home/admin/bucketsurvey.com/por.php(5): SoapClient->optionalinfo() #2 {main} thrown in /home/admin/mydomain.com/por.php on line 5 This is what I have so far: Code: [Select] <?php $client = new soapclient("http://network.thinkaction.com/api/soap_affiliate.php?wsdl", array('client' => '000' , 'add_code' => 'CD0000' , 'password' => '0000')); $result = $client->optionalinfo(); echo ($result); ?> The webservice can be found he http://network.thinkaction.com/api/soap_affiliate.php?wsdl The info regarding the webservice ( optionalinfo ) he http://network.thinkaction.com/api/soap_affiliate.php I hope that someone can help me here or by livechat. Kind Regards, Jovanmaric I call a web service and it retuens the values in the following format
$response = $client->submitRequest($requestParams);Which returns stdClass Object ( [return] => stdClass Object ( [result_code] => 0 [result_data] => City[0]=Chicago [message_text] => ) )what I want is just the value for [result_data] => City[0]=Chicagoassigned to a variable Psedo Code $city = [result_data] => City[0]=Chicago;so that $city = Chicago; Hello, If i am not posting this question at right location then i apologize for it. My problem is: I need to send HTTP get request to the webservice end point which must include the following http headers: GET / HTTP/1.1 Host: apis.live.net Accept: application/json Content-Type: application/json Authorization: WRAP access_token=AuthToken (here AuthToken is the Access Token String) Note: I am using OAuth for getting an access Token but for getting contents I need to send an HTTP get request. Any kind of help will be appreciated. Thanks Hi there, I am working with a webservice which allows me to send it a username and password and it will return an an object which includes two strings. One is just an "Ok" and the other is a cookie (like 1%2C%2C%2C2087364217%2C2087310473%....... etc) I can login ok and set extract the cookie... I then use the soapclient __setCookie to set the cookie for all further calls to the Webservice. However when I make the next call I am getting an error saying that the call is unauthorised as if I have not logged in or the cookie has not been passed.... Please help!! Im at a loose end and I dont know what else I can do... Here is the code Code: [Select] <?php // Caching ini_set("soap.wsdl_cache_enabled", "0"); // WSDL locatie $url = "some.wsdl"; // Nieuwe SoapClient klasse $soap = new SoapClient($url, array('trace' => true)); // Try loggin into the webservice and retrieving a token - this part works fine!! for($i = 0; $i < 3; $i++){ try{ $result = $soap->opLogin(array('name' => 'Usename', 'cleartext' => 'password')); // token is in the result $token = $result->info; // Trim the result to get only the cookie $token = trim(str_replace("PubAuth1=", "", $token)); // Print token echo "token - cookie:"; print($token); echo "<br>"; // Set cookie $soap->__setCookie('PubAuth1', $token); // Now make a call to the webservice to set a new user.... THIS PART DOES NOT WORK!!! for($i = 0; $i < 3; $i++){ try{ $result2 = $soap->__soapCall("opSetUser", array('email' => 'david@bustedmedia.com', 'p' =>'password123')); //$result2 = $soap->opSetUser(array('email' => 'david@bustedmedia.com', 'p' => 'lalala')); // Print result echo "opSetUser result: "; var_dump($result2); exit; } catch(Exception $ex){ echo "opSetUser error: " . $ex->getMessage() . "<br>"; } } } catch(Exception $ex) { echo "opLogin error: " . $ex->getMessage() . "<br>"; } } ?> Hey guys, I've hit a huge obstacle in my coding process of a script I am writing. It is basically an uploading interface script and it works like this. I have files on my server and I want a user to click a button which fires a php script which in turn fires a bash script which IN TURN fires the uploading program (plowshare). So to make it simple: user logs in, sees upload button. Clicks it, file starts uploading. I then want the user to see "upload initiated" and that's it. The problem is that with what I have now, the script just won't finish loading until the file has been uploaded and as a matter of fact I don't even think it is uploading anything :S Here are the scripts: PHP interface to call the bash script: Code: [Select] <?php error_reporting(E_ALL); function run_in_background($Command, $Priority = 0) { if ($Priority) $PID = shell_exec("nohup nice -n $Priority $Command 2> /dev/null & echo $!"); else $PID = shell_exec("nohup $Command 2> /dev/null & echo $!"); return($PID); } function is_process_running($PID) { exec("ps $PID", $ProcessState); return(count($ProcessState) >= 2); } $file = $_GET['file']; // Location of file relative to the index $where = $_GET['where']; // Absolute index location $absolute = '/var/www/vhosts/animekyun.com/httpdocs/icarus/'; $where = $absolute . $where; //$outfile ='log'; echo $where . $file . '<br>'; echo "<h2>The upload has been initiated!</h2>"; $ps = run_in_background("/bin/sh uploadparser.sh $file $where > $outfile"); while(is_process_running($ps)) //echo $output; ?> Bash script to call uploading program: Code: [Select] #!/bin/sh { FILE=$1 WHERE=$2 FILENAME="/var/www/vhosts/animekyun.com/httpdocs/icarus/debug/debug_mu_$FILE" FILENAME2="/var/www/vhosts/animekyun.com/httpdocs/icarus/debug/debug_multi_$FILE" /usr/local/bin/plowup megaupload "$WHERE$FILE" >> "$FILENAME".txt 2>&1 /usr/local/bin/plowup multiupload "$WHERE$FILE" >> "$FILENAME2".txt 2>&1 } & this works fine when I pass the variables as arguments in CLI I hope i have been clear enough, it does seem rather confusing Hi guys, I want my application to run a triggered process based on time to execute some tasks, what is the best approach? Thanks hi, is there a way to tell php to do a process again? example: Code: [Select] $draft_number=rand(1, 15); if($draft_number == 5){ START OVER AT TOP } else { $sql1 = "UPDATE names SET draft = '$draft_number' WHERE id = '$uid'"; $result1 = mysql_query($sql1) or die('Error, Check you fields and try again.'); } I have this code: $shell = new COM('WScript.Shell'); $shell->Run("C:\WINDOWS\system32\cmd.exe /K ".$ini['indexer']['command'], 0, false); When it runs, it opens the command line, but then when it is done, it leaves the process open. How can I close it when the process is complete? I have a full working order form in PHP. I process it and display it with a process page called "process.php." Whenever this information is displayed on the web page "process.php" I also want it to send me an e-mail with all of the information that it just processed. i.e. Checked checkboxes, text entered, etc. Whenever I try to send the contents of "process.php" to an email $message = include 'process.php'; the process page just goes through an infinite loop displaying itself over and over again instead of sending itself in an email.
Edited by AP_King7, 20 August 2014 - 10:51 AM. i have a form for which the data is sent to a process page via jquery like so: Code: [Select] jQuery.post('<?php echo $this->site_root; ?>/modules/new_post_process.php',{ message:jQuery("#message_contents").val() } ,function(data) {etc... new_post_process checks the contents of message like so: if (empty($message) && empty($error)) { $is_error = true; $error = 'Please Enter A Message'; } the problem is that it always throws this message even when the textarea isnt empty. however after the error has appeared if i submit again it goes through fine. I suppressed the error and tried and the database gets populated with an empty value which means it is indeed empty. so why does it work on the second time around? I am using CKEditor for the textarea. everything else gets submitted normally but this textarea. heres the full code: the textarea: Code: [Select] <textarea cols="80" rows="10" id="message_contents"></textarea> Code: [Select] jQuery("#new_post_form").submit(function() { jQuery.post('<?php echo $this->site_root; ?>/modules/new_post_process.php',{ user_name:jQuery("#user_name").val(), redirect_url:jQuery("#redirect_url").val(), subject:jQuery("#subject_field").val(), forum_id:jQuery("#fid").val(), topic_id:jQuery("#tid").val(), method:jQuery("#method").val(), message:jQuery("#message_contents").val() } ,function(data) { if (data == 1) { jQuery("#process_info").removeClass().addClass("subject_okay").html("<img src=\"<?php echo $this->template_path; ?>icons/small_tick.png\" alt=\"icon\" />Redirecting...").fadeIn("slow"); var URL = jQuery("#redirect_url").val(); document.location = URL; } else { jQuery("#reply_btn").css("visibility", "visible"); jQuery("#draft_btn").css("visibility", "visible"); jQuery("#process_info").removeClass().addClass("subject_error").html('<img src="<?php echo $this->template_path; ?>icons/small_error.png" alt="icon" /> ' + data).fadeIn("slow"); } }); and the process page: if (isset($_POST['subject'])) { $message = $_POST['message']; if (empty($message) && empty($error)) { $is_error = true; $error = 'Please Enter A Message'; } if (empty($error) && $is_error == false) { $query = $link->prepare("INSERT INTO ".TBL_PREFIX."posts (p_fid, p_tid, p_poster, p_name, p_content, p_time_posted) VALUES ('$forum_id', '$topic_id', '$user_name', '$subject', '$message', '".$config['time_now']."') ") or die(print_link_error()); echo "1"; } else { echo $error.'-'.$message; } I have been trying to figure out how this is done? One php file and all that changes is the name of the brand and the logo. This has to be clickable from a menu and also if a user changes the brand name it changes to the appropriate name and logo. Any ideas as to how this is done? If you can guide me in the right direction or give me an example of how this is done would be greatly appreciated. Thanks. http://www.drivermanager.com/en/download-confirmation.php?brand=compaq&logo= This may spill over into java, just not quite sure yet! Basically what I am trying to do, is fill a box with text, click a button which runs a function which send the text in the box via a JSON request to an external server. The JSON works fine, I just want a way of submitting the string which hopefully doesnt involve a form, but its the only way I can think of! Any other ideas? Hi Im doing a login for a website I've built and Im having troubles, The connection to the actual database works fine, no errors, but when trying to verify data in the database to log on and get to a secure area i just get the incorrect username or password that i created for when details are incorrect. heres the code where the problem lies Any help would be appreciated <?php session_start(); require("db_connect.php"); $username = $_POST['uname']; $password = $_POST['pword']; $sql = "SELECT * FROM login_details WHERE username='$username' AND password='$password'"; $results = mysql_query($sql, $connect); $numofrows = mysql_num_rows($results); if ($numofrows == 1) { $_SESSION['username'] = $row['username']; $_SESSION['loggedin'] = true; header ("Location: secure_page.php"); die(); } else { $_SESSION['error']= "Icorrect Username Or Password"; header("Location: login.php"); die(); } ?> This topic has been moved to Apache HTTP Server. http://www.phpfreaks.com/forums/index.php?topic=355947.0 |