我有以下字符串:
CAE33D8E804334D5B490EA273F36830A9849ACDF|xx|yy|46|13896|9550
在下面的代码中对应$track_matches[0][0]
。
唯一的恒定长度字段是第一个(CAE33D8E804334D5B490EA273F36830A9849ACDF
),长度为40个字符。我正在尝试获取值xx
和yy
,这些值是未知的长度和值以及列的其余部分。
所以我正在尝试这样的事情:
$seperator= '|';
$end_seed= strpos($track_matches[0][0], $seperator, 41 );
$seeders[$i] = substr($track_matches[0][0], 41, $end_seed - 41);
$end_leech= strpos($track_matches[0][0], $seperator, $end_seed +1 );
echo "end_seed" . $end_seed . " end_leach: " . $end_leech;
$leechers[$i] = substr($track_matches[0][0], $end_seed +1, $end_leech - $end_seed - 1);
我遇到的问题是,$end_leech=
行似乎无法正常工作(并且无法识别$seperator
)并重新整行($track_matches[0][0]
),因为它是echo
'时的值,而$ end_seed返回正确的值。 ......那么为什么会发生这种情况呢?我怎么解决它?
答案 0 :(得分:1)
尝试:
$temp = explode("|", $track_matches[0][0]);
这将返回一个数组,然后您可以将变量引用为$temp[1]
(xx)和$temp[2]
(yy)
答案 1 :(得分:0)
尝试:
$myString="CAE33D8E804334D5B490EA273F36830A9849ACDF|xx|yy|46|13896|9550";
$splitString=explode('|',$myString);
$xx=$splitString[1];
$yy=$splitString[2];
当然你可以用strpos,substr等手动复制,但需要付出更多努力