有人能告訴我,爲什麼下面的preg_match搜索的工作原理:PHP - 的preg_match失敗
preg_match("/\xF0\x49\xF7\xF8..\xF3\xF8/s", $bin, $matches2, PREG_OFFSET_CAPTURE);
,而這並不給出任何結果:
preg_match("/\x3F.\x0D\x01\x3E.\xF3\xFA..\x43\xFA.\x04\xFD\x02/s", $bin, $matches, PREG_OFFSET_CAPTURE);
兩種可能性都在裏面$箱。
進一步的問題:
什麼是搜索以下位置,其中XX是變量,可以是任何東西在$ bin文件(1個匹配或以上)的最好辦法,至少我需要開始每場比賽的位置。
我需要尋找這樣的:
3F XX 0D 01 3E XX F3 FA XX XX 43 FA XX 04 FD 02
例子匹配:
**4 example matches**
1) 3F 64 0D 01 3E 64 F3 FA 86 F8 43 FA E1 04 FD 02
2) 3F 5C 0D 01 3E 5C F3 FA 9C F8 43 FA B6 04 FD 02
3) 3F 5B 0D 01 3E 5B F3 FA 9A F8 43 FA 69 04 FD 02
4) 3F 6B 0D 01 3E 6B F3 FA 78 F8 43 FA 38 04 FD 02
我可以在$ bin包含原始二進制一個$ bin文件搜索,或將其轉換像BIN2HEX($ bin),..
現在我發現了這種方式,它似乎工作,但是,這是一個「很好」和快速的方式來做到這一點?我現在已經在腳本中分配了300MB以上的ram,並且希望它使資源更友好一些。
preg_match_all("/3F[A-Z0-9]{2}0D013E[A-Z0-9]{2}F3FA[A-Z0-9]{4}43FA[A-Z0-9]{2}04FD02/", $binhex, $matches, PREG_OFFSET_CAPTURE);
謝謝@mickmackusa!對不起,我沒有看到它,因爲我忘了問題。 非常感謝這真的很好的答案。 –