PHP Velho Oeste 2024

La classe MongoRegex

(PECL mongo >=0.8.1)

Avertissement

Cette extension, qui définie cette classe est obsolète. Veuillez utiliser l'extension MongoDB à la place. Les alertnatives à cette classe sont :

Introduction

Cette classe peut être utilisée pour créer des expressions rationnelles. Ces expressions pourront être ensuite utilisées pour interroger la base de données et trouver les chaînes correspondantes. Vous pouvez également les sauvegarder en base de données et les récupérer par la suite.

Une expression rationnelle est constituée de quatre parties. Tout d'abord, un / comme délimiteur de départ, puis, le masque, ensuite, un autre / et pour finir, une chaîne contenant les drapeaux.

Exemple #1 Masque d'une expression rationnelle

/masque/drapeaux

Mongo reconnait 6 options d'expressions rationnelles :

  • i : Insensible à la casse

  • m : Multi-lignes

  • x : Peut contenir des commentaires

  • l : Locale

  • s : Le caractère "." correspond à n'importe quel caractère, y compris les nouvelles lignes

  • u : Unicode possible

Synopsis de la classe

MongoRegex {
/* Champs */
public string regex ;
public string flags ;
/* Méthodes */
public __construct ( string $regex )
public __toString ( void ) : string
}

Sommaire

add a note add a note

User Contributed Notes 3 notes

up
3
vinicius at codemakers dot com dot br
10 years ago
/*
Use the "i" option to make searches with Case Insensitive
Find results beginning with $q
*/

$search = "V";

// Case Sensitive

$where = array('name' => array('$regex' => new MongoRegex("/^$search/")));
$cursor = $collection->find($where);

//Case Insensitive

$where = array('name' => array('$regex' => new MongoRegex("/^$search/i")));
$cursor = $collection->find($where);
up
2
thusitha555 at gmail dot com
9 years ago
here is an example for case insensitive search.If there are two fields (user_name/company_name) in collection;
<?php
$search_string
='baR';
$searchQuery = array(
           
'$or' => array(
                array(
                   
'user_name' => new MongoRegex("/^$search_string/i"),
                    ),
                array(
                   
'company_name' => new MongoRegex("/^$search_string/i"),
                    ),
                )
            );

$cursor = $customers->find($searchQuery);
?>
up
0
benyounes dot ousama at gmail dot com
13 years ago
First you must declare and define your regexObj
Here I am looking for all entry of my database wich is like "%Nicolas%" and the /i param is used for Insensitive Case
$regexObj = new MongoRegex("/^Nicolas/i");

<?php
// I attach the regexObj to my Where Condition
$where = array("ctname" => $regexObj);

// Execute the request
$resultset = $this->db->Infos->find($where);

// Parsing the results
while ($resultset->hasNext())
{
        
$clientObj = $resultset->getNext();
          echo
"Client Name: ".$clientObj["cname"]."</br>";
}
?>
To Top