PHP检查字符串是否以#开头

时间:2011-02-27 00:06:00

标签: php string

我知道这是有用的功能,但是我尝试过的功能并不适用于角色'#' 我现在正在使用的是

function startsWithChar($needle, $haystack)
{
   return ($needle[0] === $haystack);
}

,当我尝试检查'#'

时,它返回false

有没有人知道一个适用于'#'字符?

修改 我注意到该功能有效,问题是我试图使用GET来做到这一点。当GET以#开头(search.php?query = #asd)时,显然会忽略字符串。你知道解决方法吗?

3 个答案:

答案 0 :(得分:1)

你是否混淆了针头和大海捞针?

function startsWithChar($needle, $haystack) {
    return ($haystack[0] === $needle);
}

$string1 = 'Test';
var_dump(startsWithChar('#',$string1)) ;

$string2 = '#Test';
var_dump(startsWithChar('#',$string2)) ;

答案 1 :(得分:1)

现在你已经编辑了,一切都变得清晰了。 URL中的文字“#”字符被解释为查询字符串的结尾和片段的开头,因此您的脚本只是“search.php?query =”。请改用%23。有关详细信息,请参阅http://en.wikipedia.org/wiki/Percent_encoding

答案 2 :(得分:0)

这个怎么样:

function startsWithChar($haystack, $needle){
    return mb_strpos($haystack, $needle) === 1;
}