Zadejte hledaný výraz...

Preg_match_all v cyklu – přesná shoda slov

Taps
verified
rating uzivatele
(118 hodnocení)
30. 10. 2018 19:58:09
Zdravím, mám níže uvedený kód a pomocí regulárního výrazu potřebuji získat přesnou shodu slova. Bohužel kod mi však vrací i hodnotu iPhone 6, což nechci. Mohl by mi prosím někdo poradit jak kod upravit.Děkuji
30. 10. 2018 19:58:09
https://webtrh.cz/diskuse/preg_match_all-v-cyklu-presna-shoda-slov#reply1371837
rotwang
verified
rating uzivatele
30. 10. 2018 20:51:07
Prasácké řešení, které tě třeba inspiruje k něčemu lepšímu :)
$manual_tags = ; // iPhone 6 je na posledním místě pole
$matched_tags = [];
$text = 'testovací iPhone 6 Plus/6s iPhone 6 je ihned k vyzkoušení';
foreach($manual_tags as $tag) {
// pokud $text obsahuje daný tag, tak se tag uloží do $matched_tags a zároveň ho vymažu z $text
if (strpos($text, $tag) !== false) {
$matched_tags[] = $tag;
$text = str_replace($tag, '', $text);
}
}
var_dump($matched_tags);
30. 10. 2018 20:51:07
https://webtrh.cz/diskuse/preg_match_all-v-cyklu-presna-shoda-slov#reply1371836
Zaprvé proč používáte regulární výraz, když by vám stačilo prosté textové vyhledávání?
Zadruhé řetězec "iPhone 6" je součástí řetězce "iPhone 6 Plus" a v prohledávaném textu se prostě vyskytuje, takže zkuste úlohu definovat jinak.
30. 10. 2018 23:12:38
https://webtrh.cz/diskuse/preg_match_all-v-cyklu-presna-shoda-slov#reply1371835
Taps
verified
rating uzivatele
(118 hodnocení)
10. 11. 2018 12:43:45
diky za tip, takze to zkusit radeji pres strpos? vysledek vsak bude totozny jako pres preg_match_all..ne?
10. 11. 2018 12:43:45
https://webtrh.cz/diskuse/preg_match_all-v-cyklu-presna-shoda-slov#reply1371834
Pro odpověď se přihlašte.
Přihlásit