Daňového přiznání od účetní pouze teď od 490-Kč
Zobrazují se odpovědi 1 až 4 z 4

Preg_match_all v cyklu - přesná shoda slov

  1. 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
    Kód:
    <?php
    $manual_tags = ['iPhone 6','iPhone 6 Plus\/6s','iPhone 8\/7'];
    
    foreach($manual_tags as $key){
    	preg_match_all('/\b'.$key.'\b/i','testovací iPhone 6 Plus/6s je ihned k vyzkoušení',$matches,PREG_SET_ORDER,0);
      print_r($matches);
    
    }
    
    ?>

  2. Co se právě děje na Webtrhu?
  3. Prasácké řešení, které tě třeba inspiruje k něčemu lepšímu :)

    $manual_tags = ['iPhone 6 Plus/6s', 'iPhone 8/7', 'iPhone 6']; // 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);

  4. 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.

  5. diky za tip, takze to zkusit radeji pres strpos? vysledek vsak bude totozny jako pres preg_match_all..ne?

Hostujeme u Server powered by TELE3