PHP Проверка, начинается ли строка с # - PullRequest
1 голос
/ 27 февраля 2011

Я знаю, что есть функции для этого, но те, которые я пробовал, не будут работать с персонажем '#', который я сейчас использую:

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

, и он возвращает false, когда я пытаюсь проверить'#'.

Кто-нибудь знает функцию, которая работает с символом '#'?

РЕДАКТИРОВАТЬ: Я заметил, что функция работает, проблема в том, что яЯ пытаюсь сделать это с помощью GET.Очевидно, строка игнорируется, когда GET начинается с # (search.php? Query = # asd).Вы знаете обходной путь для этого?

Ответы [ 3 ]

1 голос
/ 27 февраля 2011

Теперь, когда вы отредактировали, все становится ясно. Буквенный символ «#» в URL-адресе интерпретируется как конец строки запроса и начало фрагмента, поэтому ваш сценарий получает только «search.php? Query =». Вместо этого используйте% 23. Подробнее см. http://en.wikipedia.org/wiki/Percent_encoding.

1 голос
/ 27 февраля 2011

Вы путаете иглу и стог сена?

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

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

$string2 = '#Test';
var_dump(startsWithChar('#',$string2)) ;
0 голосов
/ 27 февраля 2011

Как насчет этого:

function startsWithChar($haystack, $needle){
    return mb_strpos($haystack, $needle) === 1;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...