2013-04-02 15 views
5

Po wyszukaniu słowa "bank", powinien on wyświetlić Bank-List1, Bank-List2 z poniższej listy.Wyszukiwanie słowa w ciągu znaków za pomocą funkcji php

Lista kolejowa, Lista banków1, Lista banków2, Edukacja, E-commerce, Artykuły, Lista kolejowa1.

Czy istnieje jakaś funkcja php do wyświetlenia?

Mam dane wyjściowe dla dopasowania ścisłego. Brak wyniku dla tego typu wyszukiwania.

Proszę mi pomóc znaleźć rozwiązanie.

+0

przeczytaj instrukcję! –

Odpowiedz

2

można użyć 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 
?> 

więc dla danej sytuacji, jeśli lista była w tablicy o nazwie $values

można zrobić

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

Dzięki, działa dobrze. – raghu

+0

@raghu Jeśli dostałeś rozwiązanie w tym poście, zaznacz je jako poprawną odpowiedź. –

1

Można zrób to za pomocą stristr. Ta funkcja zwraca cały plik haystack, począwszy od pierwszego wystąpienia igły włącznie. Zwraca dopasowany podciąg. Jeśli igła nie zostanie znaleziona, zwraca FALSE.

Oto kompletny kod:

<?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

To rozwiązanie jest ważna tylko dla tego wzorca tekstu jest jak: word1, słowo2, słowo3

<?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); 
?> 

wyjście :

Bank-List1, Bank-List2 
not found 
Powiązane problemy