2011-02-06 12 views
7

Voglio un'istruzione if che utilizza la stessa cosa come mysql something LIKE '%something%'PHP Come qualcosa di simile a MySQL Come, per la dichiarazione?

Voglio creare un'istruzione if in php.

if ($something is like %$somethingother%) 

È possibile?

Il motivo per cui ho fatto questa domanda è che non voglio modificare il comando MySQL, è una lunga pagina con molte cose su di esso, non voglio creare una funzione diversa per questo.

Fammi sapere se è possibile, se possibile, quindi come farlo.

risposta

18

if ($ qualcosa è come% $ somethingother%)

E 'possibile?

no.

Non voglio cambiare il comando di MySQL, è una lunga pagina con molte cose su di esso

Usa qualche buon editor, che supporta le espressioni regolari in Trova & sostituire, e girare a qualcosa di simile:

if(stripos($something, $somethingother) !== FALSE){ 

} 
+2

strpos era perfetto :) – friendishan

3

sguardo sul strstr funzione

2

Utilizzare la funzione, che stringa di ricerca in un'altra stringa come: strstr, strpos, substr_count.

12

lo so, questa domanda non è reale, ma ho risolto problema simile :)

la mia soluzione:

/** 
* SQL Like operator in PHP. 
* Returns TRUE if match else FALSE. 
* @param string $pattern 
* @param string $subject 
* @return bool 
*/ 
function like_match($pattern, $subject) 
{ 
    $pattern = str_replace('%', '.*', preg_quote($pattern, '/')); 
    return (bool) preg_match("/^{$pattern}$/i", $subject); 
} 

Esempi:

like_match('%uc%','Lucy'); //TRUE 
like_match('%cy', 'Lucy'); //TRUE 
like_match('lu%', 'Lucy'); //TRUE 
like_match('%lu', 'Lucy'); //FALSE 
like_match('cy%', 'Lucy'); //FALSE 
+1

mi piace - un piccolo cambiamento. La linea del modello dovrebbe essere '$ modello = str_replace ('%', '. *', Preg_quote ($ modello, '/'));'. In caso contrario, le barre non saranno sfuggite per preg_match(). –

+0

Ho aggiornato la mia risposta. Grazie @JohnReid! –

0

Ma si dovranno dare stringa minuscola allora funzionerà bene. Esempio di funzione strstr:

$myString = "Hello, world!"; 
echo strstr($myString, "wor");     // Displays 'world!' 
echo (strstr($myString, "xyz") ? "Yes" : "No"); // Displays 'No' 
Problemi correlati