4

文字列に画像があるものだけを検索するMongoDB検索クエリでREGEXを実行しようとしています。その検索はファイルタイプヘッダーであるため、通常は画像/ pngまたはテキスト/ htmlのようになります。

私は正規表現のためにこのコードを実行しています:

array('fileType'=>array('$regex'=>'^image'))

そして、このコードはすべて一緒です:

foreach ($this->grid->find(array('fileType'=>array('$regex'=>'^image'))) as $file) {
                        $id = (string) $file->file['_id'];
                        $filename = htmlspecialchars($file->file["filename"]);
                        $filetype = isset($file->file["filetype"]) ? $file->file["filetype"] : 'application/octet-stream';

                        if($filetype == 'image/'.$chosenfile.''){
                            $links[] = sprintf('<img src="lib/download.php?id=%s" height="200px" width="200px">', $id);
                        }elseif($chosenfile == ''){
                             $links[] = sprintf('<img src="lib/download.php?id=%s" height="200px" width="200px">', $id);
                        }
                    }
4

2 に答える 2

11

これはあなたの問題です:

array('$regex'=>'^image')

MongoRegex オブジェクトを使用する必要があります。

array('fileType' => new MongoRegex('/^image/i'))

ドキュメントはここで定義されています: http://www.php.net/manual/en/class.mongoregex.php

今はうまくいきますか?

于 2012-06-28T21:43:24.223 に答える