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 теперь будет истинным, если кавычка "?" найден.