substr()
正規表現からの一致の使用に問題があります( preg_match()
-を使用すると一致$a
の配列が含まれます)。
エコーするとき、a[1]
それは等しく0xe84
、文字列です(私が使用してチェックしたようにgettype()
)。
substr($file, $a[2], $a[1]); //not working...
しかし、私がそうする場合(3番目のパレムは正規表現からの一般的なものであるため、実際にはこれを行うことができないことに注意してください-これは私の問題を説明するために使用されています):
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()
ません)。