使用 Post 方法调用

Call with Post Method

从我用 SOAP 调用 var_dump 得到结果如下:

WSDL 映射

stdClass 对象 ( [站点] => 数组 ( [0] => 标准类对象 ( [id] => 102728 [站点 ID] => 0 )

我想实现调用Sites数组显示数据:

Post 方法调用 SOAP 数据

<?php 


$opts = array(
            'ssl' => array('ciphers'=>'RC4-SHA', 'verify_peer'=>false, 'verify_peer_name'=>false)
        );`enter code here`

// SOAP 1.2 client
$params = array (
    'encoding' => 'UTF-8', 
    'verifypeer' => false, 
    'verifyhost' => false, 
    'soap_version' => SOAP_1_2, 
    'trace' => 1, 'exceptions' => 1, 
    "connection_timeout" => 180, 
    'stream_context' => stream_context_create($opts) );

//disable wsdl cache 
ini_set("soap.wsdl_cache_enabled", "0"); 


$client = new SoapClient("http://www.example.com?WSDL",$params);

$result1=$client->getSiteInfo();

$zone = $result1->Sites;
if(isset($_POST['rayat'])){
    echo $zone;
}
 else {


?>

<form action="index.php" method="post">

<input id="rayat" name="rayat" size="10" type="text" value=""  />
<input id="submit" name="submit" type="submit" value="submit" />

</form>

<div class="snippet" data-lang="js" data-hide="false">
<div class="snippet-code">
<pre><code>    <?php 

    //$param = array('isbn'=>'0385503954');
    // define path to server application
    $opts = array(
                'ssl' => array('ciphers'=>'RC4-SHA', 'verify_peer'=>false, 'verify_peer_name'=>false)
            );

    // SOAP 1.2 client
    $params = array (
        'encoding' => 'UTF-8', 
        'verifypeer' => false, 
        'verifyhost' => false, 
        'soap_version' => SOAP_1_2, 
        'trace' => 1, 'exceptions' => 1, 
        "connection_timeout" => 180, 
        'stream_context' => stream_context_create($opts) );

    //disable wsdl cache 
    ini_set("soap.wsdl_cache_enabled", "0"); 

    $server = '';

     
    $client = new SoapClient("http://www.example.com?WSDL",$params);

    $result1=$client->getSiteInfo();
      
    $zone = $result1->Sites;
    if(isset($_POST['rayat'])){
        echo $zone;
    }
     else {
        

    ?>


    <form action="champ.php" method="post">

    <input id="rayat" name="rayat" size="10" type="text" value=""  />
    <input id="submit" name="submit" type="submit" value="submit" />

    </form>

    <?php
     }
     ?>
     
<?php } ?> Above code give me result is 'Array'

SOAP 结果是一个对象数组,正如您的 var_dump() 告诉您的那样。如果你说你的 SOAP 调用总是只有 return 个结果,你可以通过做一些像这样的事情来作弊:

    $zone = $result1->Sites;
    if(isset($_POST['rayat'])){
        echo 'ID: ' . $zone[0]->id . '<br>SiteID: ' . $zone[0]->siteid;
    } else {
    ...

$zone 变量是一个数组,您不能回显一个数组,因此您必须遍历该数组并回显每个单独的值,或者直接访问这些值,如其他答案所示。

正在尝试获取搜索值,它没有给出任何值!请帮帮我!

WSDL

stdClass 对象 ( [opsTrackerSites] => 数组 ( [0] => 标准类对象 ( [经理姓名] => DECOMM-MGR, GC [技术名称] => dectech )

<?php
    $opts = array(
                    'ssl' => array('ciphers'=>'RC4-SHA', 'verify_peer'=>false, 'verify_peer_name'=>false)
                );


        $params = array (
            'encoding' => 'UTF-8', 
            'verifypeer' => false, 
            'verifyhost' => false, 
            'soap_version' => SOAP_1_2, 
            'trace' => 1, 'exceptions' => 1, 
            "connection_timeout" => 180, 
            'stream_context' => stream_context_create($opts) );

        //disable wsdl cache 
        ini_set("soap.wsdl_cache_enabled", "0"); 




        $client = new SoapClient("http://example.com?WSDL",$params);

        $result = $client->getSiteInfo();
        $zone = $result->Sites;
        $output = '';
        if(isset($_POST['search'])){
            $searchq = $_POST['search'];
            $searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
            $zone = $result->Sites;

            if($zone == ''){
                $output = 'There was no search results!';
            }
            else{
                 $output .= '<div>' .$zone->techName.''.$zone->managerName.'<div>';
                 echo $output;
        }}
?>
 <form action="champ.search.php" method="post">
            <input type="text" name="search" placeholder="Search for Contacts..."> 
             <input id="submit" name="submit" type="submit" value="submit" />
        </form>