我的问题标题似乎与其他问题相同,但问题与其他问题不同。 我的代码:
$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
)
任何人都可以让我知道上面代码中导致返回false的问题。提前谢谢。
答案 0 :(得分:0)
fsockopen函数问题。要在本地和不安全的服务器上进行测试,我们必须删除$ parts [&#39; scheme&#39;]。&#39;://&#39;来自fsockopen函数调用。
$fp=fsockopen($parts['host'], isset($parts['port'])
? $parts['port'] : 80, $errno, $errstr, 30);
答案 1 :(得分:0)
first argument的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);