2 返信 最新の回答 日時: Jun 17, 2016 2:02 AM ユーザー:User25770

    FileMakerPHPのgetValueListの不具合

    User25770

      FileMakerServer14のFileMakerPHPを使用しています。

      getValueListで値一覧を取得した時に、{半角英数字+全角日本語}の順で設定した値の時だけ、半角英数字の部分だけ繰り返されて表示されます。

       

      例)

      ○FileMakerで登録している値一覧

      • Japan日本語
      • 日本語
      • 英語English
      • --Asia--

      WEBで表示されるとき

      • JapanJapan日本語
      • 日本語
      • 英語English
      • --Asia--

      と「Japan日本語」が「JapanJapan日本語」2回繰り返されてしまう。

       

       

      下記の場所を($this->associative_array_push・・・)の行をコメントアウトすると、その現象はおさまるのですが、この修正方法で大丈夫でしょうか。

      \FileMaker\Implementation\Parser\FMPXMLLAYOUT.php

       

      function _cdata($V3643b863, $V8d777f38)

      {

      if ($this->V32e51cce!== null && preg_match('|\S|', $V8d777f38)) {

       

      if($this->inside_data){

      $V78656626 = $this->V6a45a325[$this->V32e51cce][$this->V582ddd29];

      $V8d777f38 = $V78656626 . $V8d777f38;

      }

      $V83ee0926 = array( $this->V582ddd29=> $this->_fm->toOutputCharset($V8d777f38));

       //$this->associative_array_push($this->V6a45a325[$this->V32e51cce], $V83ee0926);

      $this->Ve3ad9440[$this->V32e51cce][count($this->Ve3ad9440[$this->V32e51cce]) - 1] .= $this->_fm->toOutputCharset($V8d777f38);

      $this->inside_data = true;

      }

      }

       

      .fp7時代の\FileMaker\Implementation\Parser\FMPXMLLAYOUT.phpの中では上記の処理はなく下記のようにシンプルでした。

      function _cdata($V3643b863, $V8d777f38)

      {

      if ($this->V32e51cce!== null && preg_match('|\S|', $V8d777f38)) {

      $this->Ve3ad9440[$this->V32e51cce][count($this->Ve3ad9440[$this->V32e51cce]) - 1] .= $this->_fm->toOutputCharset($V8d777f38);

      }

        • 1. Re: FileMakerPHPのgetValueListの不具合
          TSGalJ

          User25770 様

           

          平素は弊社製品をご愛顧いただき、誠にありがとうございます。

           

          FileMaker Server 14 の PHP カスタムWeb 公開において、getValueList () メソットで値一覧から「半角英数+全角文字」の形の値を取得した場合に、半角英数部分が繰り返され、正しい値が取得できない現象を確認いたしました。

           

          誠に恐れ入りますが、getValueList () メソットは今後廃止される可能性があり、この問題が修正される見込みがございません。

           

          このため、値一覧からの値の取得には、getValueList () メソットの代わりに、getValueListTwoFields() メソッドを使用する処理にご変更いただくようお願い申し上げます。

           

          お手数をおかけいたしますが、何卒宜しくお願い申し上げます。

           

          ファイルメーカー株式会社

          TSGalJ

          1 人中 1 人が役に立つと言っています
          • 2. Re: FileMakerPHPのgetValueListの不具合
            User25770

            ご回答ありがとうございます。

             

            getValueListが非推奨になり、代わりにgetValueListTwoFieldsを使うようにと、ドキュメントにも書かれていました。

            確認不足でした。