开发者

Check if string contains another string

In php is there a way i can check if a string includes a value. Say i had a string "this & that", could i check if that included "this". Thanks

UPDATED:

$u = username session

function myLeagues2($u)
{
     $q = "SELECT * FROM ".TBL_FIXTURES." WHERE `home_user` = '$u' GROUP BY `compname` ";
   return mysql_query($q, $this->connection);

}

That code returns if there is an exact match in the database. But i put two usernames together like "username1 & username2" and need to check if the username session is present in that field.

Is that a way to do this? It obviously woudn't equal it.

ANOTHER UPDATE:

If i use the like %username% in the sql, will it appear if its just the username. So rather than Luke & Matt being 开发者_如何学Pythonshown, if its just Luke will that show too? I dont want it to, i just want things that arent. Can you put != and LIKE so you only get similar matches but not identical?

Cheers


Use strstr or strpos functions. Although there are regex ways too but not worth for such trivial task there.

Using strstr

if (strstr('This & That', 'This') !== false)
{
   // found
}

Using strpos

if (strpos('This & That', 'This') !== false)
{
   // found
}


I like stristr the best because it is case insensitive.

Usage example from php.net:

$email = 'USER@EXAMPLE.com';
echo stristr($email, 'e'); // outputs ER@EXAMPLE.com
echo stristr($email, 'e', true); // As of PHP 5.3.0, outputs US

based on your update

I think you want to use the like statement

SELECT * FROM table 
WHERE home_user LIKE "%username1%" OR home_user LIKE "%username2%"
GROUP BY compname

The % Is your wild card.


<?php>
$string = 'this & that';
if (strpos($string, 'this') === FALSE) {
    echo 'this does not exist!';
} else {
    echo 'this exists!';
}
?>

What's noteworthy in the check is using a triple equal (forget the actual name). strpos is going to return 0 since it's in the 0th position. If it was only '== FALSE' it would see the 0 and interpret it as FALSE and would show 'this does not exist'. Aside from that this is about the most efficient way to check if something exists.


preg_match('/this/','this & that');

This returns the number of matches, so if it's 0, there were no matches. It will however stop after 1 match.


Regular expressions can be checked with preg-match.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜