【问题标题】:Call to undefined function filter_var()调用未定义的函数 filter_var()
【发布时间】:2012-07-31 07:53:22
【问题描述】:

将我的网站转移到另一个主机后,我收到了这个错误:

    Fatal error: Call to undefined function filter_var() in
 /home/ultrastep/ultrastep.ru/docs/sites/all/modules/q_cart/q_cart.module on line 410

服务器上的 PHP 版本是 5.2.10。

有什么想法吗?

【问题讨论】:

  • @DanLee提供的链接失效了,找存档版here

标签: php


【解决方案1】:

您需要安装 php 模块“过滤器”

【讨论】:

  • 随着 PHP 5.2 成为 PHP 本身的一部分(它是预编译配置标志 - 不是 php.ini 标志)。
  • 嗨,我目前面临同样的问题。如何安装 php 模块“过滤器”?
  • 如果 Marco 是正确的,这可以解释 Nextcloud 的文档省略了对这个模块的要求,而在 FreeBSD 中不是这种情况。安装php74-filter 将为您提供所需的模块。
【解决方案2】:

如果其他人像我一样偶然发现这个问题,这是我为 Redhat/CentOS 找到的解决方案:

http://www.cyberciti.biz/faq/rhel-cento-linux-install-php-pecl-filter/

安装 php-devel 需要安装php-devel来编译php扩展:

yum install php-devel

下载php源码 php_pcre.h 头文件不包含在 php 源代码 5.1.6 中,因此您还需要 php 源代码。访问 php.net 获取最新版本并存储到 /opt 目录。使用 lynx 和 elinks:

cd /opt

elinks http://www.php.net/get/php-5.2.6.tar.bz2/from/a/mirror

将 php 源代码保存到磁盘。接下来,提取源代码:

tar -jxvf php-5.2.6.tar.bz2

下载过滤器扩展 访问 pecl 扩展以获取过滤器的最新源代码:

cd /opt wget http://pecl.php.net/get/filter-0.11.0.tgz

安装过滤器扩展 解压文件:

tar -jxvf filter-0.11.0.tgz

cd filter-0.11.0

打开logical_filters.c文件:

vi logical_filters.c

找到如下行:

include "ext/pcre/php_pcre.h"

改成(需要php_pcre.h的绝对路径):

include "/opt/php-5.2.6/ext/pcre/php_pcre.h"

保存并关闭文件。最后,输入以下命令编译扩展:

phpize

./configure

make install

配置过滤器扩展 输入以下命令:

echo 'extension=filter.so' > /etc/php.d/filter.ini

重启httpd:

service httpd restart

【讨论】:

  • 请提供一些信息,以免这不是仅链接的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 2015-02-11
  • 2016-11-12
  • 2013-02-14
  • 2013-02-26
相关资源
最近更新 更多