Во-первых в этой строке есть кириллица, а значит нужно использовать
функции для работы с многобайтовыми строками.
Во-вторых переменные
$posnamevalstart
и
$posnamevalend
у вас имеют одинаковые значения. Раз вы ищете в обеих переменных одинаковые значения, то нужно смещать начальную точку:
$posnamevalend = mb_strpos($findstr, "\"", $posnamevalstart + 1);
В-третьих третьим параметром в функции
substr()
передается ДЛИНА ВОЗВРАЩАЕМОЙ СТРОКИ. Значит нужно написать эту строку следующим образом:
$namevalue = mb_substr($findstr, ($posnamevalstart + 1), ($posnamevalend - $posnamevalstart - 1));
Ну и самое главное - зачем вы вообще это делаете? Если просто понять как работать с
strpos()
и
substr()
то окей. А так у вас там обычная сериализованная строка (только почему-то обрезанная вами), которая представляется в массив функцией
unserialize()