1. #1
    Rusko's Avatar
    Registered
    31/08/11
    Location
    Antwerpen
    Posts
    125
    iTrader
    7 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/2

    Array zoeken in string

    Dag iedereen, ik ben een systeem aan het maken met tags, ik zou elke tag die mogelijk is in een array zetten en dan een tekst checken of minstens 1 van de waarden in de array, ook in de tekst zit (zodat ik niet telkens heel mijn code moet aanpassen wanneer ik een nieuwe tag heb)

    bv.
    Code:
    <?php
    $text =  "tag1 blabla";
    $tags = array("tag1", "tag2");
    
    if(!strpos(tag[0],$text) && !strpos(tag[1],$text)) //dit moet dus aangepast worden
    {
    ...
    }
    ?>
    Bij die if-statement zou dat dus automatisch moeten gebeuren zodat ik niet steeds heel mijn code moet aanpassen bij een kleine wijziging van een tag
    no votes  

  2. #2
    Dieterg's Avatar
    Registered
    08/01/05
    Location
    Turnhout
    Posts
    1,182
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    9/9
    Kan je iets specifieker zijn? Ik snap niet goed wat je bedoeld? Krijg je met bovenstaande code geen php errors?

    Code:
    $text = "tag1 blabla tag2";
    $tags = array('tag1','tag2');
    
    if(strpos($tags[0], $text) && strpos($tags[1], $text))
    {
    
    }
    -
    no votes  

  3. #3
    Rusko's Avatar
    Registered
    31/08/11
    Location
    Antwerpen
    Posts
    125
    iTrader
    7 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/2
    Quote Originally Posted by Mam View Post
    This quote is hidden because you are ignoring this member. Show
    Kan je iets specifieker zijn? Ik snap niet goed wat je bedoeld? Krijg je met bovenstaande code geen php errors?

    Code:
    $text = "tag1 blabla tag2";
    $tags = array('tag1','tag2');
    
    if(strpos($tags[0], $text) && strpos($tags[1], $text))
    {
    
    }
    Kan wel zijn, heb het niet getest, die if statement zou moeten doorlopen of er een waarde van array $tags in $text zit dus:
    Code:
    if(tags[0] zit niet in $text && tags[1] zit niet in $text en ...)
    {
    return true;
    }
    Als geen enkele waarde uit de array in $text zit, retourneert hij true en stopt het daar dus. Als er geen enkele tag in de tekst zit doorloopt hij anders heel de code en dat is tijdverlies en nutteloos
    no votes  

  4. #4

    Registered
    15/12/04
    Location
    Ninove
    Posts
    199
    iTrader
    19 (100%)
    Mentioned
    0 Post(s)
    Op deze manier kan je zien welke tags in uw tekst voorkomen.
    Indien een tag voorkomt dan doet hij daarvan een echo.

    Code:
    $text =  "tag1 blabla";
    $tags = array("tag1", "tag2");
    foreach($tags as $tag)
    {
    	if(strstr($text, $tag) != false) echo $tag;	
    }
    no votes  

  5. #5
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    Maar die code klopt niet echt hé (zowel de originele als alle voorbeelden totnogtoe), want dan zal "detag1" ook matchen als je op "tag1" zoekt, net zoals "detag1ofzo", en dat zal wel niet de bedoeling zijn vermoed ik.

    Afhankelijk van de use case (meer specifiek wat $text precies bevat) zou iets als volgt moeten volstaan :

    PHP Code:
    $text =  "tag1 blabla detag2 tag3enzoiets tag3.";
    $tags = array("tag1""tag2""tag3");

    $found false;
    foreach (
    $tags as $tag) {
      
    $pattern "/\b" preg_quote($tag'/') . "\b/i";
      
    $found preg_match($pattern$text);
      if (
    $found) break;
    }
    if (!
    $found) {
      
    // Uw huidige code als er geen tag gevonden werd

    Nu stopt de loop na de eerste gevonden tag. Stel nu dat je iets met de gevonden tags zou willen doen kan je die in een array opslaan waar nu de break staat (en die break dan ook verwijderen uiteraard ).
    PSN: dJeezBE - Delicious bookmarks
    Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alieno
    Pastafarian by choice
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in