[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[orca-tech:01866] Re: PHPでの新APIの利用法を教えてください
- To: orca-tech@xxxxxxxxxxxxxx
- Subject: [orca-tech:01866] Re: PHPでの新APIの利用法を教えてください
- From: Shinji KOBAYASHI <skoba@xxxxxxxxxx>
- Date: Sat, 28 Apr 2012 15:32:02 +0900
お。たしかにだいぶ早くなりました。
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";
>> }
>> }
>> }
>>
>> ?>
>>