PHP PEAR验证包 - 致命错误:未找到类'验证'

时间:2010-02-02 19:21:38

标签: php pear

这是我收到的错误:

Fatal error: Class 'Validate' not found in C:\xampp\htdocs\final_project\validate.php on line 5

这是我的PHP代码:

 <?php
 require_once 'Validate.php';
 foreach($_POST as $name => $value)
 {
 $valid = Validate::string($value);
 }
 ?>

我不明白我错过了什么。我为validate包安装了--alldeps,而PEAR包含路径也是正确的。 Validate_CA没有给我任何错误,但它也没有正确验证。

1 个答案:

答案 0 :(得分:2)

PHP按优先顺序解析include_path。这意味着当相对路径传递给require()include()fopen()file()readfile()file_get_contents()时,PHP将开始查找在第一个目录中。如果找到该文件,则包含该文件。如果没有,它将继续下一个并重复该过程。

考虑以下包含路径:

include_path = ".:/php/includes:/php/pear"

以及以下PHP脚本:

<?php
require('MyFile.php');

PHP将按以下顺序查找MyFile.php

  • ./MyFile.php(当前目录)
  • /php/includes/MyFile.php
  • /php/pear/MyFile.php

您无法加载Validate.php的原因是您当前目录中已有一个名为validate.php的文件(请记住,路径在Windows上不区分大小写,但在UNIX上)。因此,PHP包含您的文件而不是与PEAR::Validate对应的文件,因为您的文件在PEAR之前以include_path优先顺序找到。

只需将文件重命名为validate.php之外的其他内容即可解决问题。如果它仍然不起作用,请尝试回显get_include_path()的返回值,以确保它确实设置正确。