PHP中没有任何内容可以帮助您(这有点具体).所以作为radashk只是siad,你只需要编写一个函数
function getParts($string, $positions){
$parts = array();
foreach ($positions as $position){
$parts[] = substr($string, 0, $position);
$string = substr($string, $position);
}
return $parts;
}
Run Code Online (Sandbox Code Playgroud)
这样的事情.然后你可以在任何你喜欢的地方使用它,所以它很干净:
$parts = getParts('some string', array(1, ... 161));
Run Code Online (Sandbox Code Playgroud)
如果你真的想要,你可以将它破坏成正则表达式:
^.{1}.{18} <lots more> .{161}$
Run Code Online (Sandbox Code Playgroud)
会匹配你想要的.
小智 5
我会使用unpack ():
$str = "?ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890....";
$array = unpack("a1first/a26second/a10third/a*rest",$str);
print_r($array);
Run Code Online (Sandbox Code Playgroud)
这将返回:
Array
(
[first] => ?
[second] => ABCDEFGHIJKLMNOPQRSTUVWXYZ
[third] => 1234567890
[rest] => ....
)
Run Code Online (Sandbox Code Playgroud)