我一直在搜索和搜索,找不到任何有用的东西,但这就是我想要做的。
此代码:
try{
$timeout = 2;
$scraper = new udptscraper($timeout);
$ret = $scraper->scrape('udp://tracker.openbittorrent.com:80',array('0D7EA7F06E07F56780D733F18F46DDBB826DCB65'));
print_r($ret);
}catch(ScraperException $e){
echo('Error: ' . $e->getMessage() . "<br />\n");
echo('Connection error: ' . ($e->isConnectionError() ? 'yes' : 'no') . "<br />\n");
}
输出:
Array ( [0D7EA7F06E07F56780D733F18F46DDBB826DCB65] => Array ( [seeders] => 148 [completed] => 10 [leechers] => 20 [infohash] => 0D7EA7F06E07F56780D733F18F46DDBB826DCB65 ) )
我希望那个播种器计入一个字符串,比如$ seeds。我该怎么做呢?
答案 0 :(得分:2)
这样的东西?
$seeds = $ret['0D7EA7F06E07F56780D733F18F46DDBB826DCB65']['seeders'];
答案 1 :(得分:0)
您可以使用strval()
将数字转换为字符串。
$string = strval($number);
或者您可以将其转换为字符串:
$string = (string)$number;
在您的上下文中:
$string = strval($ret['0D7EA7F06E07F56780D733F18F46DDBB826DCB65']['seeders']);
然而,奇数字符串也是数组的第一个索引,所以你也可以这样做:
$string = strval($ret[0]['seeders']);
或者如果你想只使用索引('seeders'也是第二个数组的第一个索引):
$string = strval($ret[0][0]);
如果您只想要这个数字,那么它也很容易:
$num = $ret[0][0];
答案 2 :(得分:0)
目前尚不清楚是否要将数组值(s?)指定为单独的变量(s?)或仅将其转换为字符串。通过将每个数组键分配为具有匹配数组值的单独变量,这是完成所有上述选项的好方法:
$ret_vars = array_pop($ret);
foreach ($ret_vars as $variable_name=>$variable_value) :
${$variable_name} = (string)$variable_value;
endforeach;
在您的原始示例中,最终会使用匹配的字符串值填充$seeders
,$completed
,$leechers
和$infohash
。当然,请确保代码中的其他地方不使用/需要这些变量名称。如果是这种情况,只需在${}
构造中添加某种唯一的前缀,例如${'ret_'.$variable_name}