У меня проблемы с использованием substr()
со совпадениями, полученными из регулярного выражения (использование preg_match()
- $a
содержит массив совпадений).
Когда echo'ing a[1]
равно0xe84
и является строкой (как я проверил, используя gettype()
).
substr($file, $a[2], $a[1]); //not working...
Но если я это сделаю (Также обратите внимание, что я не могу сделать это, так как третий параметр являетсяgeneric, исходящий из регулярного выражения - это просто используется для иллюстрации моей проблемы):
substr($file, $a[2], 0xe84); //works fine - when entering the match directly as an integer
Поэтому мой вопрос заключается в том, почему substr()
работает только тогда, когда 3-й параметр имеет целочисленный тип, икак я могу сделать $a[1]
целым числом, чтобы оно работало нормально?
Я пробовал делать приведение типов (используя (int)
), используя intval()
, а также settype(integer)
на $a[1]
, однако$a[1]
затем становится 0
(и substr()
не будет работать).