2026-05-20 01:45:55
在开始之前,你需要确保有几个基本的东西。首先,你需要一个以太坊节点。可以使用本地的以太坊客户端,比如 Geth 或 Parity,或使用 Infura 这样的云服务。Infura 提供了免费的 API 接口,适合测试和开发阶段,非常方便。
想要使用 PHP 与以太坊交互,你需要安装一些 PHP 库。最常用的库是 web3.php,这个库可以让你轻松地与以太坊进行交互。你可以使用 Composer 来安装:
composer require sc0vuosz/web3.php
如果你还没有安装 Composer,建议你先去官网看看,可以大大简化 PHP 库的管理。
连接节点其实很简单。如果你使用 Infura,你只需将下述代码替换掉你自己的 URL:
require 'vendor/autoload.php';
use Web3\Web3;
$infuraUrl = 'https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID';
$web3 = new Web3($infuraUrl);
$web3->eth->blockNumber(function ($err, $blockNumber) {
if ($err !== null) {
echo 'Error: ' . $err->getMessage();
return;
}
echo 'Current block number: ' . $blockNumber;
});
替换掉 `YOUR_INFURA_PROJECT_ID` 为你自己的项目 ID,运行这段代码,如果一切正常,你会看到当前的区块号。
你应该想知道用户的账户余额吧。只需一小段代码即可实现:
$address = '0xYourAddressHere'; // 替换成你的以太坊地址
$web3->eth->getBalance($address, function ($err, $balance) {
if ($err !== null) {
echo 'Error: ' . $err->getMessage();
return;
}
// 这里的余额是 Wei,转换为以太坊需要除以 1e18
$ethBalance = $balance->toString() / 1e18;
echo 'Balance: ' . $ethBalance . ' ETH';
});
替换掉 `0xYourAddressHere`,你就能获取到余额了。是不是超方便?
如果你想发送以太币,那么需要进行一些更多的设置。首先,你需要创建一个钱包,这通常需要私钥。记得以安全为第一原则保存好你的私钥。
以下是发送以太币的基本代码:
$from = '0xYourFromAddress'; // 发送者地址
$to = '0xYourToAddress'; // 接收者地址
$value = '1000000000000000000'; // 以 Wei 为单位,这里是 1 ETH
$privateKey = 'YOUR_PRIVATE_KEY';
$web3->eth->accounts->new(function($err, $account) use ($privateKey, $from, $to, $value) {
// 获取 nonce
$web3->eth->getTransactionCount($from, 'latest', function($err, $nonce) use ($to, $value, $privateKey) {
$tx = [
'nonce' => '0x' . dechex($nonce),
'gasPrice' => '0x' . dechex(20000000000), // gas price
'gas' => '0x' . dechex(21000), // gas limit
'to' => $to,
'value' => '0x' . dechex($value),
'chainId' => 1 // mainnet
];
// 签名该交易
$signedTx = $web3->eth->accounts->signTransaction($tx, $privateKey, function($err, $signedTx) {
$web3->eth->sendSignedTransaction($signedTx['raw'], function($err, $transactionHash) {
if ($err !== null) {
echo 'Error: ' . $err->getMessage();
} else {
echo 'Transaction Hash: ' . $transactionHash;
}
});
});
});
});
天哪,发送以太币听起来复杂,但当你把代码写好后,其实一步一步来就容易多了。
其实对接以太坊钱包并没有你想象的那么复杂。需要的就是一些基础的 PHP 知识和对以太坊的理解。最重要的是,一定要注意安全,私钥一定不能泄漏!
朋友们,如果你们在开发过程中遇到问题,别忘了可以去社区寻求帮助哦。像 Reddit、Stack Overflow 这些地方,都有超级多热心的开发者。
希望今天的分享对你有所帮助,快去试试吧!如果你有任何问题,欢迎留言交流!