我需要通过代理(从运行的 fsockopen 代码获取远程视频文件的大小)
我有一个 PHP 运行代码,询问远程 mp4 文件的文件大小,这要归功于 fsockopen 函数和 HEAD 命令。
现在,我需要将此代码移动到代理后面的其他服务器,这是通过新代理并继续使用 fsockopen 的最佳方法?我真的被困住了。我无法建立隧道或处理两个套接字。
有什么想法吗?感谢您的帮助和时间。
private function filesize_remote($remotefile, $timeout=10) {
$size = false;
$url = parse_url($remotefile);
if ($fp = @fsockopen($url['host'], ($url['port'] ? $url['port'] : 80), $errno, $errstr, $timeout)) {
fwrite($fp, 'HEAD '.@$url['path'].@$url['query'].' HTTP/1.0'."\r\n".'Host: '.@$url['host']."\r\n\r\n");
while (!feof($fp)) {
$headerline = fgets($fp, 4096);
if (preg_match('/^Content-Length: (.*)/', $headerline, $matches)) {
$size = intval($matches[1]);
break;
}
}
fclose ($fp);
}
return $size;
}
I've a PHP running code that ask the file size of a remote mp4 file, thanks to a fsockopen function and HEAD command.
Now, i need to move this code to other server behind a proxy, which is the best approach to go through that new proxy, and continue using fsockopen? I'm really stuck. I can't tunnel or handle two sockets.
Any ideas? thanks for your help and time.
private function filesize_remote($remotefile, $timeout=10) {
$size = false;
$url = parse_url($remotefile);
if ($fp = @fsockopen($url['host'], ($url['port'] ? $url['port'] : 80), $errno, $errstr, $timeout)) {
fwrite($fp, 'HEAD '.@$url['path'].@$url['query'].' HTTP/1.0'."\r\n".'Host: '.@$url['host']."\r\n\r\n");
while (!feof($fp)) {
$headerline = fgets($fp, 4096);
if (preg_match('/^Content-Length: (.*)/', $headerline, $matches)) {
$size = intval($matches[1]);
break;
}
}
fclose ($fp);
}
return $size;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有代理:
使用代理:
使用代理和身份验证:
看这里: 带代理的 Fsockopen
Without proxy:
With proxy:
With proxy and authentication:
Look here: Fsockopen with proxy