【问题标题】:How to use php dl function for librets.dll for rets client如何为 rets 客户端使用 librets.dll 的 php dl 函数
【发布时间】:2012-08-21 21:02:06
【问题描述】:

我不想在即将离开工作时跳入所有内容,我只想提出建议或改变一些事情。我有一个centos linux服务器,这是给我错误的代码,我不确定是什么问题,因为我是这样下载的,它不会工作。

if (!extension_loaded('librets')) {
  if (strtolower(substr(PHP_OS, 0, 3)) === 'win') {
    if (!dl('php_librets.dll')) return;
  } else {
    // PHP_SHLIB_SUFFIX gives 'dylib' on MacOS X but modules are 'so'.
    if (PHP_SHLIB_SUFFIX === 'dylib') {
      if (!dl('librets.so')) return;
    } else {
      if (!dl('librets.'.PHP_SHLIB_SUFFIX)) return;
    }
  }
}

我收到以下错误:

Fatal error: Call to undefined function dl() in /home/removed/public_html/test/rets2/librets.php on line 22

我不知道怎么了..

有人吗?

【问题讨论】:

  • 函数dl 未在您的代码中定义 - 您需要下载或包含其他文件吗?
  • 服务器上只有index.php、这个类文件和librets.dll
  • Librets 是我正在使用的客户端,我遇到了这个错误。
  • 看起来 dl 可能已从您的 PHP 风格中删除:php.net/manual/en/function.dl.php

标签: php rets


【解决方案1】:

dl 不是在某些条件下加载库的好解决方案,这就是为什么该函数已从几个 SAPI-s(服务器 API - PHP 与运行 PHP 的服务器之间的连接)中删除的原因。您要么必须将其添加到 php.ini 中,要么通过您的服务器可用的任何方式加载它。如果您使用的是共享主机,出于安全原因,主机商可能还禁用了 dl()。

【讨论】:

  • 你建议我用什么来加载 librets.dll 文件?
  • 如果你确定它是 PHP 扩展(PHP 扩展的通常命名惯例是 php_extension.dll,所以 php_rets.dll 会更好),你可以将它添加到你的 php.ini 文件中- 大多数发行版使用的系统在 /etc/php5/conf.d/ 或类似文件中有 .ini 文件,您可以在那里创建带有“extension=php_rets.dll”的 rets.ini。重新启动 apache 或 php-fpm,扩展应该在 phpinfo() 输出中可见。如果不是,请检查错误日志。如果您使用的是共享主机,请联系支持人员。
猜你喜欢
  • 2013-10-09
  • 2017-01-12
  • 2016-06-20
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多