0

我有以下字符串:

CAE33D8E804334D5B490EA273F36830A9849ACDF|xx|yy|46|13896|9550

在下面的代码中对应于$track_matches[0][0].

唯一的恒定长度字段是第一个 ( CAE33D8E804334D5B490EA273F36830A9849ACDF),它有 40 个字符长。我正在尝试获取值xxyy这些值与列的其余部分一起是未知的长度和值。

所以我正在尝试这样的事情:

 $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'd 而 $end_seed 返回正确值时的值。......所以这是怎么回事为什么会发生这种情况?我该如何解决?

4

2 回答 2

1

尝试:

$temp = explode("|", $track_matches[0][0]);

这将返回一个数组,然后您可以将变量引用为$temp[1](xx) 和$temp[2](yy)

于 2013-06-10T23:39:08.613 回答
0

尝试 :

$myString="CAE33D8E804334D5B490EA273F36830A9849ACDF|xx|yy|46|13896|9550";
$splitString=explode('|',$myString);
$xx=$splitString[1];
$yy=$splitString[2];

当然,您可以使用 strpos、substr 等手动复制,但需要更多的努力

于 2013-06-10T23:37:13.760 回答