在Joomla中使用fopen()非常慢

时间:2014-11-29 07:14:06

标签: php rest joomla fopen joomla-extensions

我正在为Joomla编写身份验证插件。 该插件正在调用外部站点以验证用户名和密码。

代码有效,但我的问题是,当我从Joomla插件调用fopen()时,它需要很长时间(63秒)才能响应。

在服务器上运行相同的代码(但不通过Joomla)时,fopen()调用只需0.1秒。

Joomla有没有可以改变的设置,这使得fopen()调用花了这么长时间?或者是否有任何其他功能我应该使用而不是fopen()? (我尝试过file_get_contents()但结果相同)

以下是我使用的代码(基于这篇文章:http://wezfurlong.org/blog/2006/nov/http-post-from-php-without-curl/)(我没有安装cURL,所以这不是一个选项。)

$username = "admin";
$password = "1234" ;
$verb = 'GET'
$url = "https://xxx.xxx.xxx/api.phtml/login" ;

$params = array("username"=>$username, "password"=>$password);    
$params = http_build_query($params);
$url .= '?' . $params;

$cparams = array( 'http' => array(  'method' => $verb,
                                    'ignore_errors' => true ) );

$context = stream_context_create($cparams);
$fp = fopen($url, 'rb', false, $context);

启用allow_url_fopen。

的Joomla!版本:Joomla! 2.5.27稳定的
PHP版本:5.2.6-1 + lenny10

我现在已经三天了,所以任何帮助都会非常感激!

谢谢!

1 个答案:

答案 0 :(得分:0)

通常当我们遇到fopen问题时,我们会切换到curl并解决问题。在任何情况下,检查您的.htaccess和您的本地php.ini(或.user.ini)文件,以获取对fopen的任何限制。