如何重定向到 PHP 中的一系列网站中响应最快的网站?
How to redirect to the fastest responding website in an array of websites in PHP?
我有一个在线功能,需要连接到 PHP 数组中几个网站中最快的服务器。
这是我的进展情况。我使用 Fopen 检查网站是否在线,并使用 foreach 重定向到它。我认为最快的服务器会首先重定向,但它只是重定向了 URL.
数组中的最后一项
这是我得到的结果:
// The URLs to check in an Array.
$urls = ['website1.com', 'website2.com', 'website3.com'];
// Get the fastest server (the fastest server should redirect first)
foreach($urls as $proxy) {
if ($socket = @ fsockopen($proxy, 80, $errno, $errstr, 30)) {
header('Location: https://'.$proxy.'');
fclose($socket);
} else {}
}
echo 'Connecting to the fastest server...';
提前致谢。我期待看到您的回复:)
看起来 Php 没有提供类似回调的选项来异步接收套接字上的成功或失败连接。
无论如何,Php 有很棒的库。我也对 Php.
的这个功能感兴趣
您可以使用 composer the following lib https://github.com/reactphp/socket
安装
使用起来似乎很简单。
发现它稍微适合你的情况:
$loop = React\EventLoop\Factory::create();
$connector = new React\Socket\Connector($loop);
$urls = ['website1.com', 'website2.com', 'website3.com'];
foreach($urls as $proxy) {
$socket = new React\Socket\Server($proxy, $loop);
$socket->on('connection', function (ConnectionInterface $conn) {
header('Location: https://'.$proxy.'');
$conn->close();
});
});
$loop->run();
祝你好运!
我有一个在线功能,需要连接到 PHP 数组中几个网站中最快的服务器。
这是我的进展情况。我使用 Fopen 检查网站是否在线,并使用 foreach 重定向到它。我认为最快的服务器会首先重定向,但它只是重定向了 URL.
数组中的最后一项这是我得到的结果:
// The URLs to check in an Array.
$urls = ['website1.com', 'website2.com', 'website3.com'];
// Get the fastest server (the fastest server should redirect first)
foreach($urls as $proxy) {
if ($socket = @ fsockopen($proxy, 80, $errno, $errstr, 30)) {
header('Location: https://'.$proxy.'');
fclose($socket);
} else {}
}
echo 'Connecting to the fastest server...';
提前致谢。我期待看到您的回复:)
看起来 Php 没有提供类似回调的选项来异步接收套接字上的成功或失败连接。
无论如何,Php 有很棒的库。我也对 Php.
的这个功能感兴趣
您可以使用 composer the following lib https://github.com/reactphp/socket
安装
使用起来似乎很简单。
发现它稍微适合你的情况:
$loop = React\EventLoop\Factory::create();
$connector = new React\Socket\Connector($loop);
$urls = ['website1.com', 'website2.com', 'website3.com'];
foreach($urls as $proxy) {
$socket = new React\Socket\Server($proxy, $loop);
$socket->on('connection', function (ConnectionInterface $conn) {
header('Location: https://'.$proxy.'');
$conn->close();
});
});
$loop->run();
祝你好运!