Php 为什么我的Twitter应用程序返回端口错误?

Php 为什么我的Twitter应用程序返回端口错误?,php,twitter,oauth,Php,Twitter,Oauth,我制作了一个Twitter应用程序,使用“twitteroauth”和“oauth”PHP脚本从我的网站发布推文 一切正常,但我的错误日志显示以下错误: 未定义的索引:端口OAuth.php 383 虽然这似乎并没有妨碍我的脚本正常工作,但我还是希望我的错误日志不受干扰。避免未来可能出现的问题 知道为什么会这样吗 为了便于参考,错误日志指向的OAuth.php中的代码如下: public function get_normalized_http_url() { $parts = parse_ur

我制作了一个Twitter应用程序,使用“twitteroauth”和“oauth”PHP脚本从我的网站发布推文

一切正常,但我的错误日志显示以下错误:

未定义的索引:端口OAuth.php 383

虽然这似乎并没有妨碍我的脚本正常工作,但我还是希望我的错误日志不受干扰。避免未来可能出现的问题

知道为什么会这样吗

为了便于参考,错误日志指向的OAuth.php中的代码如下:

public function get_normalized_http_url() {
$parts = parse_url($this->http_url);
$port = @$parts['port'];       <-- Line 383
$scheme = $parts['scheme'];
$host = $parts['host'];
$path = @$parts['path'];
$port or $port = ($scheme == 'https') ? '443' : '80';
if (($scheme == 'https' && $port != '443')
|| ($scheme == 'http' && $port != '80')) {
$host = "$host:$port";
}
return "$scheme://$host$path";
}
public函数get\u normalized\u http\u url(){
$parts=parse_url($this->http_url);
$port=@$parts['port'];之所以发生这种情况,是因为不保证返回端口号(强调我的):

如果省略组件参数,则返回关联数组。至少一个 元素将出现在数组中


尝试使用类似于
$port=(array_key_exists('port',$parts)$parts['port']:80);
的方法来隐藏通知,如果您不想触碰
错误报告

这是
OAuth.php
文件中的错误,它会访问数组的索引,而不执行索引检查

显然,写这篇文章的编码员非常聪明,他使用了错误抑制操作符
@
,而不是进行适当的索引检查——懒惰(假设最好的情况)

将此报告为错误上游,修复是微不足道的:

$parts = parse_url($this->http_url) + array('port'=>NULL, 'path'=>NULL);

并删除两个
@
运算符。

此错误已修复。以下是提交url:

嗯,
$parts[“port”]
包含什么?我不知道库,但如果它是空的,可能需要添加值?