2013-04-02 16 views
5

Quando cerco "banca", dovrebbe visualizzare Bank-List1, Bank-List2 dal seguente elenco.Cerca una parola in una stringa utilizzando la funzione php

Lista Ferroviaria, Banca-Lista1, Banca-Lista2, Istruzione, Ecommerce, Articoli, Lista-ferroviaria1.

C'è qualche funzione di php da visualizzare?

Ho ottenuto l'output per la corrispondenza esatta. Ma nessun risultato per questo tipo di ricerca.

Per favore aiutami a trovare la soluzione.

+0

leggere il manuale! –

risposta

2

è possibile utilizzare stristr

stristr — Case-insensitive strstr()

<?php // Example from PHP.net 
    $string = 'Hello World!'; 
    if(stristr($string, 'earth') === FALSE) { 
    echo '"earth" not found in string'; 
    } 
// outputs: "earth" not found in string 
?> 

Quindi per la vostra situazione, se l'elenco è stato in un array di nome $values

si potrebbe fare

foreach($values as $value) 
{ 
     if(stristr($value, 'bank') !== FALSE) 
     { 
     echo $value."<br>"; 
     } 
} 
+0

Grazie, funziona bene. – raghu

+0

@raghu Se hai trovato una soluzione con questo post di risposta, contrassegnala come risposta corretta. –

1

Puoi fallo usando stristr. Questa funzione restituisce tutto il pagliaio a partire dalla prima occorrenza dell'ago fino alla fine. Restituisce la sottostringa corrispondente. Se l'ago non viene trovato, restituisce FALSE.

Ecco il codice completo:

<?php 

    $str="Railway-List, Bank-List1, Bank-List2, Education, Ecommerce, Articles, Railway-List1"; 
    $findme="bank"; 
    $tokens= explode(",", $str); 
    for($i=0;$i<count($tokens);$i++) 
    { 
    $trimmed =trim($tokens[$i]); 
    $pos = stristr($trimmed, $findme); 
    if ($pos === false) {} 
    else 
    { 
     echo $trimmed.","; 
    } 
    } 
?> 

DEMO

1

questa soluzione è valida solo per questo modello di testo è come: parola1, word2, parola3

<?php 
$text = 'Railway-List, Bank-List1, Bank-List2, Education, Ecommerce, Articles, Railway-List1.'; 


function search_in_text($word, $text){ 

$parts = explode(", ", $text); 
$result = array(); 
$word = strtolower($word); 

foreach($parts as $v){ 

    if(strpos(strtolower($v), $word) !== false){ 
    $result[] = $v; 
    } 

} 

if(!empty($result)){ 
    return implode(", ", $result); 
}else{ 
    return "not found"; 
} 
} 

echo search_in_text("bank", $text); 
echo search_in_text("none", $text); 
?> 

uscita :

Bank-List1, Bank-List2 
not found 
Problemi correlati