Multiple keyword loop?

Discussion in 'PHP' started by MrLeN, Jun 14, 2014.

  1. #1
    If I have this text file:

    ---keywords.txt
    banana
    grapes
    apple
    mango
    orange
    pear
    coconut
    strawberry
    ---

    ..and I want to see if any of those words are in a string:

    ie:

    If (banana or apple or orange or pear are contained in my text file) {
    $keyword = "the word that was found";
    }

    for example: if apple was a line in the text file, then:

    $keyword = "apple"; //apple was found in the list and has become the $keyword

    also, if there are multiple keywords - just the first one found would do.

    ie: If both apple and pear were in the list then Keyword would become apple.

    I can find examples of how to check if a word is in a list online, but I can't find an example of how to check if a word is in a list and then make that word the value of a variable.
     
    Solved! View solution.
    MrLeN, Jun 14, 2014 IP
  2. #2
    From the docs of: http://www.php.net//manual/en/function.fgets.php + the isset check:

    
    <?php
    // Items or item to look for
    $lookingFor = array(
        'orange' => true,
        'apple' => true,
    );
    $keywordFound = false;
    // Open file
    $handle = fopen("keywords.txt", "r");
    if ($handle) {
         // Get line
         while (($buffer = fgets($handle, 4096)) !== false) {
            // If line is found in array, output and stop looking
            if (isset($lookingFor[$buffer])) {
                 $keywordFound  = $buffer;
                 break;
            }
        }
        if (!feof($handle)) {
            echo "Error: unexpected fgets() fail\n";
        }
        fclose($handle);
    }
    
    if ($keywordFound  !== false) {
        echo   echo "$keywordFound found in file";
    }
    
    PHP:
     
    ThePHPMaster, Jun 14, 2014 IP
    MrLeN likes this.
  3. MrLeN

    MrLeN Well-Known Member

    Messages:
    406
    Likes Received:
    8
    Best Answers:
    0
    Trophy Points:
    120
    #3
    Thank you - that is just what I need!

    I appreciate your response :)
     
    MrLeN, Jun 14, 2014 IP