I'll explain what levenshtein() is.
The Leventshtein distance between two strings is the minimum number of characters you'd have to change, add, delete, or move to change one string into the other. levenshtein() calculates this distance.
So for example, you could use a loop to compare the search to each link, and say if the levenshtein distance is bigger than for example, 5 (I'm just giving a pretty random number here...you'll want to test your script to figure out which number works best), then it is not a match. If it is smaller than 5, it is a match.
Also, you take the Levenshtein distance of the metaphone key of each word, but this doesn't work well with phrases.
For example, the metaphone key of hello is HL. This is also the metaphone key of hell and hill. What you could do is calculate the length of the user input string, or metaphone key - which you can put in a string using strlen(), then if the length of the string is smaller, then it must be an identical match, but if the length of the metaphone key is larger, then use the Levenshtein distance trick.
Also, if a user inputs something with spaces, explode the string with explode(), get the metaphone keys of each element of the array with metaphone() and put the metaphone keys together with join() or implode(). And then use the Levensthein trick.
The possiblities are endless with PHP!