如何从比特币地址中提取余额

时间:2021-02-21 21:47:15

标签: php

我正在尝试从文本文件中的比特币地址列表中提取余额。

这是我的代码:

<?php


$list = file("list.txt");
$file = "checked_list.txt";
foreach ($list as $address) {

    $url = "https://blockchain.info/address/" . $address . "?format=json";
    $json = json_decode(file_get_contents($url), true);
    $FinalBalance = $json["final_balance"];
    echo $address . " Balance is: " . $FinalBalance;
    $data_array = array($address, $FinalBalance);
    //Saving to file
    $my_data = file_put_contents($file, implode(' ', $data_array) . "\n", FILE_APPEND | LOCK_EX);
    sleep(5);
}

我的问题是当我在 list.txt 中有超过 1 行时,它会抛出错误:

Warning: file_get_contents(https://blockchain.info/address/ADDRESS-HERE
?format=json): Failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error
 in C:\laragon\www\Scanner\BalanceCheckerByAddress\check.php on line 9

Warning: Trying to access array offset on value of type null

如果只有1个单地址,会显示余额并保存数据到checked_list.txt

我在这里遗漏了什么?

1 个答案:

答案 0 :(得分:0)

foreach 之后添加这一行:

$address = trim($address);

您的问题出在函数 file(..) 中,因为文件 list.txt 中的每一行都包含换行符。并且您应该在处理字符串 $address 之前删除空格。

您的完整代码应如下所示:

<?php

$list = file("list.txt");
$file = "checked_list.txt";

foreach ($list as $address) {

    $address = trim($address); // Added line to remove white-space

    $url = "https://blockchain.info/address/" . $address . "?format=json";
    $json = json_decode(file_get_contents($url), true);
    $FinalBalance = $json["final_balance"];

    echo $address . " Balance is: " . $FinalBalance;
    echo "<br>"; // Added line for seeing the results better in web-browser

    $data_array = array($address, $FinalBalance);

    //Saving to file
    $my_data = file_put_contents($file, implode(' ', $data_array) . "\n", FILE_APPEND | LOCK_EX);

    sleep(5);
}

我在 PHP 7.4.10 中测试了代码并且运行良好。

相关问题