Ma chaîne est dans une langue étrangère. J'utilise l'expression régulière suivante:Le modificateur i ne fonctionne pas avec les langues étrangères?
$str = 'մի քանի Բառ ձեր մասին';
$word = 'բառ';
$cont = preg_match_all("/.{0,80}[^\s]*?".preg_quote($word)."[^\s]*?.{0,80}/si",$str,$matched);
print_r($matched);//returns Array ([0] => Array ()) ..
.
... mais si je mets:
$word = "Բառ";//returns Array ([0] => Array ([0] => մի քանի Բառ ձեր մասին))
Que puis-je faire pour être en mesure d'utiliser le modificateur I en langues étrangères aussi?
Quel est le but de ce code? Est-ce que vous essayez d'extraire le mot d'un texte plus leurs mots environnants? – Gumbo
@Gumbo exactement. J'essaie d'extraire le mot et les mots environnants s'il y a même un sous-mot dans la chaîne. ce que vous pensez d'une telle solution? – Simon
Je préfère diviser le texte en mots, trouver les mots qui sont ou contenir le mot recherché, puis obtenir les mots environnants. Ou si vous voulez utiliser 'preg_match_all', recherchez simplement le mot recherché et utilisez l'indicateur' PREG_OFFSET_CAPTURE' pour obtenir les offsets pour 'substr' (voir http://stackoverflow.com/questions/3306513). – Gumbo