Belki bir PHP sınıfı oluşturmak?

0 Cevap

Ben yapıştırarak kod iken soru silinmiş var gibi görünüyor.

Ben iki işlevleri aşağıda dahil ettik. Bir giriş ve bir session id elde etmek için bir işlevi olduğunu ve ikinci fonksiyon Giriş () session id elde formu kullanır, bazı meta verileri almak için; fonksiyonu.

Ben bu script derece kadar temizlenebilir bir his var, ama ben yapmaya gayret her zaman çok kırılır.

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?

Ben PHP sınıfları kullanılabilir nasıl bir anlayış var, ama ben başlamak için hiçbir yerde yok.

<?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 = "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 = "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)
    ?> 

0 Cevap