strpos не соответствует строке: проблема набора символов?

strpos работает или нет в зависимости от источника разобранной строки (вводится вручную или предоставляется сторонним механизмом):

index.php?option=com_ars&view=release&id=8

Инструкция strpos

$debug = "found '?' : " . ((strpos($url, '?') === false) ? 'false' : 'true');

Strpos всегда возвращает false.

Я старался mb_strposЯ пробовал все виды en/de-кодирования безрезультатно (utf8_encode, utf8_decode, даже используя sprintf, iconv...)

Я лучше всего пойму, что когда строка предоставляется сторонним механизмом, convert_uudecodeвыдает ошибку

Warning: convert_uudecode(): The given parameter is not a valid uuencoded string

в то время как для введенного вручную он возвращает 8AX9| 3".

Я вообще не специалист по php, но это заставляет меня думать о проблеме набора символов.

Любая идея о том, как я должен сделать мой strpos?

1 ответ

Прежде всего, я вижу, что есть одна скобка "(" слишком много. (У вас есть 3 открытия "(" и 2 закрытия ")").
Во-вторых, если вы хотите, чтобы ваша переменная $ok была истинной, если он НАЙТИ "?" подписать, то вы должны проверить с! ==

$ok = strpos($url, '?') !== false;

$ok теперь будет истинным, если кавычка "?" найден.

Другие вопросы по тегам