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

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



お。たしかにだいぶ早くなりました。

2012年4月28日11:34 HayatoYoshitomi <yoshitomi@xxxxxxxxxxx>:
> 吉冨@佐賀です。
> 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";
>>      }
>>    }
>> }
>>
>> ?>
>>