Maybe create a PHP class? How to trim and make an example script more dynamic

Wast3d

New Member
Looks like the question got deleted when I was pasting code.I have included two functions below. One is a function for logging in and obtaining a session id, and the latter function is for getting some meta data, which uses the session id obtained form the Login(); function. I have a feeling that this script can be cleaned up immensely, but every time I attempt to do so it breaks.Is there a more elegant way of sending data than fput?Is there a more elegant way of parsing an XML response that using the between(); before(); and after(); functions?Can this script be made more dynamic to eventually be used in a library of sorts?I have an understanding of how PHP classes can be used, but I have no where to start. \[code\]<?php function Login () { // Host, Servlet, Port, and Time Out information $host='host.example.com'; $servlet='XMLAPI'; $port='80'; $time_out='20'; // Username and Password Variables $username = 'SomeUserId'; $password = 'Somepassword'; $sock = fsockopen ($host, $port, $errno, $errstr, $time_out); $data = "http://stackoverflow.com/questions/3621539/xml=<?xml version=\"1.0\"?><Envelope><Body><Login>"; $data .= "<USERNAME>" . $username . "</USERNAME>"; $data .= "<PASSWORD>" . $password . "</PASSWORD>"; $data .= "</Login></Body></Envelope>"; $size = strlen ($data); if (!$sock) { print("Could not connect to host:". $errno . $errstr); return (false); } fputs ($sock, "POST /servlet/" . $servlet . " HTTP/1.1\n"); fputs ($sock, "Host: " . $host . "\n"); fputs ($sock, "Content-type: application/x-www-form-urlencoded\n"); fputs ($sock, "Content-length: " . $size . "\n"); fputs ($sock, "Connection: close\n\n"); fputs ($sock, $data); $buffer = ""; while (!feof ($sock)) { $buffer .= fgets ($sock); } fclose ($sock); //print ($buffer); return ($buffer); } $xml_response = Login(); session_start(); $_SESSION['JsessionID'] = between ("<SESSION_ENCODING>","</SESSION_ENCODING>", $xml_response); function GetMetaData () { // List metadata id $list_id = "7238776"; // Assign JSessionID from Login(); $JsessionID = $_SESSION['JsessionID']; // Host, Servlet, Port, and Time Out information $host='host.example.com'; $servlet = 'XMLAPI' . $JsessionID; $port='80'; $time_out='20'; $sock = fsockopen ($host, $port, $errno, $errstr, $time_out); if (!$sock) { print("Could not connect to host:". $errno . $errstr); return (false); } $data = "http://stackoverflow.com/questions/3621539/xml=<?xml version=\"1.0\"?><Envelope><Body>"; $data .= "<GetListMetaData><LIST_ID>" . $list_id . "</LIST_ID>"; $data .= "</GetListMetaData></Body></Envelope>"; $size = strlen ($data); fputs ($sock, "POST /servlet/" . $servlet . " HTTP/1.1\n"); fputs ($sock, "Host: " . $host . "\n"); fputs ($sock, "Content-type: application/x-www-form-urlencoded\n"); fputs ($sock, "Content-length: " . $size . "\n"); fputs ($sock, "Connection: close\n\n"); fputs ($sock, $data); $buffer = ""; while (!feof ($sock)) { $buffer .= fgets ($sock); } fclose ($sock); print ($buffer); return ($buffer); } //XML Parsing Functions function between ($this, $that, $inthat) { return before($that, after($this, $inthat)); }; function before ($this, $inthat) { return substr($inthat, 0, strpos($inthat, $this)); }; function after ($this, $inthat) { if (!is_bool(strpos($inthat, $this))) return substr($inthat, strpos($inthat,$this)+strlen($this)); }; // XML Parsing of GetMetaData(); function $xml_response = GetMetaData(); $id = between ("<ID>","</ID>", $xml_response); $last_name = between ("<NAME>LAST_NAME</NAME>\n<VALUE>","</VALUE>", $xml_response); print($id) ?> \[/code\]
 
Back
Top