文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHP程序与服务器端通讯的方法 [转]

PHP程序与服务器端通讯的方法 [转]

时间:2007-10-04  来源:windlike


PHP程序与服务器端通讯的方法
不知道这样算不算名不符实,举个实例吧。
假设有10个网站,分布在各地,它们的库存要同步,而数据库不支持远程连接。
我们要实时地取得服务器的库存数,可以通过很多种方法,我所知道的有以下几种:
  • [color="#ff0000"]CURL方式
    • [color="#ff0000"]SOCKET方式
    • [color="#ff0000"]PHP5中的SOAP方式
      以下分别给出示例来实现它:
      [color="#ff0000"]CURL方式
      client.php
      psecode = 'NDE005';
      $website = 'www.abc.com';
      $amt = 1;
      $pwd = 123456;
      $ch = curl_init();
      $curl_url = "http://ics1.server.com/index.php?web=" . $website .
      "&pwd=" . $pwd . "&action=check&pseid=" . $psecode .
      "&amt=" . $amt;
      curl_setopt($ch, CURLOPT_URL, $curl_url);
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,返回到变量
      $curl_result = curl_exec($ch);
      $result = explode(',', $curl_result);
      curl_close($ch);
      print_r($result);
      ?>
      服务器端只需按一定的格式输出,然后客户端按此格式接收就可以了如:
      echo "OK," . $fpsecode . "," . $fbalance ;//以逗号分隔

      [color="#ff0000"]SOCKET方式
      这个要借助第三方类库HttpClient,可以到这里下载:http://scripts.incutio.com/httpclient/
      'www.abc.com',
      'pwd' => '123456',
      'action' => 'check',
      'pseid' => 'NDE005',
      'amt' => 1);
      $pageContents = HttpClient::quickPost('http://ics.server.com/index.php', $params);
      $result = explode(',', $pageContents);
      print_r($result);
      ?>
      [color="#ff0000"]PHP5中的SOAP方式
      server.php
      prepare($query);
          $stmt->execute(array(':psecode' => strtoupper(trim($fpsecode))));
          $stmt->bindColumn('fprice', $fprice);
          $stmt->bindColumn('fcansale', $fcansale);
          $stmt->bindColumn('fbalance', $fbalance);
          $stmt->bindColumn('fbaltip', $fbaltip);
          while($row = $stmt->fetch(PDO_FETCH_BOUND)) {
            //
          }
        } catch (PDOException $e) {
          echo $e->getMessage();
        }
        return $fprice; //你可以返回一个数组
      }
      $dsn = 'pgsql:host=192.168.*.* port=5432 dbname=db user=123456 password=123456';
      try {
        $dbh = new PDO($dsn);
      } catch (PDOException $e) {
        die('Connection failed: ' . $e->getMessage());
      }
      ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache
      $server = new SoapServer("[color="#ff0000"]stockquote.wsdl"); //配置文件
      $server->addFunction("getQuote");
      $server->handle();
      ?>
      stockquote.wsdl































      client.php
      getQuote("nde005");
        print_r($result);
      ?>
                     
                     
                     

  • 相关阅读 更多 +
    排行榜 更多 +
    胜利女神新的希望小米服手游下载

    胜利女神新的希望小米服手游下载

    角色扮演 下载
    我要当老板伐木工厂游戏下载

    我要当老板伐木工厂游戏下载

    模拟经营 下载
    涡轮螺旋桨最新版下载

    涡轮螺旋桨最新版下载

    模拟经营 下载