[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[orca-tech:01865] Re: PHPでの新APIの利用法を教えてください



吉冨@佐賀です。
file_get_contentsが同期通信を行いますので、時間が掛かっているのは
タイムアウトで次の処理に進んでいるからだとおもいます。
file_get_contentsを使う場合には先に
ini_set('default_socket_timeout',1);
として行えば速くなるかと思います。※標準は60です。

(2012/04/28 4:41), Shinji KOBAYASHI wrote:
> こっちでもやってみました。
> 確かに遅いので調べてみましたが、XMLの解析に手間取っているようです。
> 結構冗長なファイルなので、比較的高速なXMLReaderに切り替えてみましたが、
> element名がrecordとかstringとか重なりまくっているのと,attribute名もnameとか
> なので,いろいろと手間です。もう少し上手にname space定義したほうがいいと思います。
> 
> 色々やってみた結果,これだと結構速いです。phpは初心者なのでもっといい書き方が
> あるとは思いますけれども。
> 
> <?php
> 
> $reader = new XMLReader();
> $reader->open("http://trial:@trial.orca.med.or.jp:8000/api01r/patientget?id=1";);
> 
> while($reader->read()) {
>    if ($reader->localName == "array") {
>      break;
>    }
>    if ($reader->nodeType == XMLREADER::ELEMENT) {
>      $attr_name = $reader->getAttribute("name");
>      if ($attr_name) {
>        echo $attr_name.": ";
>        $reader->read();
>        echo $reader->value."<br />\n";
>      }
>    }
> }
> 
> ?>
>