例如我有一个字符串I am @ the penthouse.
我需要知道如何在 php 字符串中找到字符“@”以及字符的位置。
我尝试了 strpos 但它不起作用。
我在这里先向您的帮助表示感谢。
编辑:
我一直在使用它来获取角色:
$text = "I am @ the penthouse";
$pos = strrpos($text, '@');
if($pos == true)
{
echo "yes";
}
例如我有一个字符串I am @ the penthouse.
我需要知道如何在 php 字符串中找到字符“@”以及字符的位置。
我尝试了 strpos 但它不起作用。
我在这里先向您的帮助表示感谢。
编辑:
我一直在使用它来获取角色:
$text = "I am @ the penthouse";
$pos = strrpos($text, '@');
if($pos == true)
{
echo "yes";
}
我会这样做
请注意,我使用的是strpos
,而不是反向对应物,strrpos
if (($pos = strpos('I am @ the penthouse.', '@') !== false) {
echo "pos found: {$pos}";
}
else {
echo "no @ found";
}
注意:因为@
可能是字符串中的第一个字符,strpos
所以可以返回一个0
. 考虑以下:
// check twitter name for @
if (strpos('@twitter', '@')) { ... }
// resolves to
if (0) {
// this will never run!
}
因此,将在未找到匹配项时strpos
显式返回。false
这是正确检查子字符串位置的方法:
// check twitter name for @
if (strpos('@twitter', '@') !== false) {
// valid twitter name
}
您也可以strpos()
为此目的使用该功能。就像strrpos()
它在字符串中搜索子字符串(或至少是字符)一样,但如果未找到子字符串,则返回该子字符串的第一个位置或 boolean(false) 。所以片段看起来像:
$position = strpos('I am @ the penthouse', '@');
if($position === FALSE) {
echo 'The @ was not found';
} else {
echo 'The @ was found at position ' . $position;
}
请注意strpos()
,在 php.ini和php.ini 中都有一些常见的陷阱strrpos()
。
1. 检查返回值的类型!
想象以下示例:
if(!strpos('@stackoverflow', '@')) {
echo 'the string contains no @';
}
尽管字符串包含“@”,但将输出“@”未找到。那是因为 PHP 中的弱数据类型。前面的 strpos() 调用将返回 int(0) 因为它是字符串中的第一个字符。但是,除非您使用 '===' 运算符强制执行严格的类型检查,否则此 int(0) 将作为 FALSE 处理。这是正确的方法:
if(strpos('@stackoverflow', '@') === FALSE) {
echo 'the string contains no @';
}
2. 使用正确的参数顺序!
strpos 的签名是:
strpos($haystack, $needle [, $start]);
这与PHP 中的其他 str* 函数不同,其中 $needle 是第一个参数。
请记住这一点!;)
这似乎在 PHP 5.4.7 中对我有用:
$pos = strpos('I am @ the penthouse', '@');
你到底strpos
是什么意思不工作?
看这对我有用,它也对你有用
$string = "hello i am @ your home";
echo strpos($string,"@");
我希望这个能帮上忙 -
<?php
$string = "I am @ the penthouse";
$desired_char = "@";
// checking whether @ present or not
if(strstr($string, $desired_char)){
// the position of the character
$position = strpos('I am @ the penthouse', $desired_char);
echo $position;
}
else echo $desired_char." Not found!";
?>