fsockopen returns 'bool(false)'
fsockopen returns 'bool(false)'
我的问题标题好像和其他问题一样,但是issue和其他的不一样。
我的代码:
$post_string = http_build_query($params);
$parts = parse_url($url);
$errno = 0;
$errstr = "";
$fp = fsockopen($parts['scheme'].'://' . $parts['host'], isset($parts['port'])
? $parts['port'] : 443, $errno, $errstr, 30);
echo "<pre>"; var_dump($fp);
我的零件数组是:
Array
(
[scheme] => http
[host] => local.abhibus.com
[path] => /search/distanceC
)
任何人都可以让我知道上面代码中导致 return false 的问题是什么。提前致谢。
fsockopen 函数有问题。要在本地和不安全的服务器上进行测试,我们必须从 fsockopen 函数调用中删除 $parts['scheme'].'://'。
$fp=fsockopen($parts['host'], isset($parts['port'])
? $parts['port'] : 80, $errno, $errstr, 30);
first argument of fsockopen()
是 $hostname
。没有方案,没有://
。只是主机名。
此外,您应该根据方案确定默认端口:
// The default HTTP port is 80
$port = 80;
if (isset($parts['port'])) {
// A port is specified in the URL; use it
$port = $parts['port'];
} elseif ($parts['scheme'] == 'https') {
// No port in URL and the protocol is HTTP
// the default port for HTTPS is 443
$port = 443;
}
$fp = fsockopen($parts['host'], $port, $errno, $errstr, 30);
我的问题标题好像和其他问题一样,但是issue和其他的不一样。 我的代码:
$post_string = http_build_query($params);
$parts = parse_url($url);
$errno = 0;
$errstr = "";
$fp = fsockopen($parts['scheme'].'://' . $parts['host'], isset($parts['port'])
? $parts['port'] : 443, $errno, $errstr, 30);
echo "<pre>"; var_dump($fp);
我的零件数组是:
Array
(
[scheme] => http
[host] => local.abhibus.com
[path] => /search/distanceC
)
任何人都可以让我知道上面代码中导致 return false 的问题是什么。提前致谢。
fsockopen 函数有问题。要在本地和不安全的服务器上进行测试,我们必须从 fsockopen 函数调用中删除 $parts['scheme'].'://'。
$fp=fsockopen($parts['host'], isset($parts['port'])
? $parts['port'] : 80, $errno, $errstr, 30);
first argument of fsockopen()
是 $hostname
。没有方案,没有://
。只是主机名。
此外,您应该根据方案确定默认端口:
// The default HTTP port is 80
$port = 80;
if (isset($parts['port'])) {
// A port is specified in the URL; use it
$port = $parts['port'];
} elseif ($parts['scheme'] == 'https') {
// No port in URL and the protocol is HTTP
// the default port for HTTPS is 443
$port = 443;
}
$fp = fsockopen($parts['host'], $port, $errno, $errstr, 30);