Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 找不到类?_Php_Mcrypt - Fatal编程技术网

Php 找不到类?

Php 找不到类?,php,mcrypt,Php,Mcrypt,我正在使用 index.php MCrypt.php存在于同一目录中 当我运行index.php时 致命错误:在中找不到类“MCrypt” /第5行的home/username/project/index.php 更新:我尝试只包含MCrypt.php,但得到了相同的错误。我尝试重命名为.class.php,但得到了相同的错误 class MCrypt { private $iv = 'fedcba9876543210'; #Same as in JAVA private $k

我正在使用

index.php
MCrypt.php
存在于同一目录中

当我运行
index.php

致命错误:在中找不到类“MCrypt” /第5行的home/username/project/index.php

更新:我尝试只包含MCrypt.php,但得到了相同的错误。我尝试重命名为.class.php,但得到了相同的错误

class MCrypt {

    private $iv = 'fedcba9876543210'; #Same as in JAVA
    private $key = '0123456789abcdef'; #Same as in JAVA

    function __construct() {

    }

    function encrypt($str) {
        $iv = $this->iv;

        $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv);

        mcrypt_generic_init($td, $this->key, $iv);
        $str = $this->padString($str);
        $encrypted = mcrypt_generic($td, $str);

        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
        return base64_encode($encrypted);
    }

    function decrypt($code) {
        $code = base64_decode($code);
        $iv = $this->iv;

        $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv);

        mcrypt_generic_init($td, $this->key, $iv);
        $decrypted = mdecrypt_generic($td, $code);

        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);

        return utf8_encode(trim($decrypted));
    }

    protected function hex2bin($hexdata) {
        $bindata = '';

        for ($i = 0; $i < strlen($hexdata); $i += 2) {
            $bindata .= chr(hexdec(substr($hexdata, $i, 2)));
        }

        return $bindata;
    }

    private function padString($source) {
        $paddingChar = ' ';
        $size = 16;
        $x = strlen($source) % $size;
        $padLength = $size - $x;

        for ($i = 0; $i < $padLength; $i++) {
            $source .= $paddingChar;
        }

        return $source;
    }

}
class-MCrypt{
private$iv='fedcba9876543210'#与JAVA中的相同
private$key='0123456789abcdef'#与JAVA中的相同
函数_u构造(){
}
函数加密($str){
$iv=$this->iv;
$td=mcrypt模块打开('rijndael-128','','cbc',$iv);
mcrypt_generic_init($td,$this->key,$iv);
$str=$this->padString($str);
$encrypted=mcrypt_generic($td,$str);
mcrypt_generic_deinit($td);
mcrypt模块关闭($td);
返回base64_编码($encrypted);
}
函数解密($code){
$code=base64_解码($code);
$iv=$this->iv;
$td=mcrypt模块打开('rijndael-128','','cbc',$iv);
mcrypt_generic_init($td,$this->key,$iv);
$decrypted=mdecrypt_generic($td,$code);
mcrypt_generic_deinit($td);
mcrypt模块关闭($td);
返回utf8_编码(trim($decrypted));
}
受保护的函数hex2bin($hexdata){
$bindata='';
对于($i=0;$i
包含而不是
MCrypt.class.php
,如果文件名为
MCrypt.php
,则文件名为
MCrypt.php
您的php文件必须以php开始标记开始。类之前的第一行必须是
是名为MCrypt.php或MCrypt.class.php的文件吗?文件名是否与MCrypt.class.php完全一致?这是唯一的错误吗?您是否复制/粘贴了错误而不进行修改?如果将
include
更改为
require
,当添加
echo“test”时会发生什么
MCrypt.class.php
文件(类外),运行代码时是否输出“test”?@davogotland是。我试过了。需要一次。相同。我在MCrypt.class.php之前尝试过这个,但得到了相同的错误
class MCrypt {

    private $iv = 'fedcba9876543210'; #Same as in JAVA
    private $key = '0123456789abcdef'; #Same as in JAVA

    function __construct() {

    }

    function encrypt($str) {
        $iv = $this->iv;

        $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv);

        mcrypt_generic_init($td, $this->key, $iv);
        $str = $this->padString($str);
        $encrypted = mcrypt_generic($td, $str);

        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
        return base64_encode($encrypted);
    }

    function decrypt($code) {
        $code = base64_decode($code);
        $iv = $this->iv;

        $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv);

        mcrypt_generic_init($td, $this->key, $iv);
        $decrypted = mdecrypt_generic($td, $code);

        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);

        return utf8_encode(trim($decrypted));
    }

    protected function hex2bin($hexdata) {
        $bindata = '';

        for ($i = 0; $i < strlen($hexdata); $i += 2) {
            $bindata .= chr(hexdec(substr($hexdata, $i, 2)));
        }

        return $bindata;
    }

    private function padString($source) {
        $paddingChar = ' ';
        $size = 16;
        $x = strlen($source) % $size;
        $padLength = $size - $x;

        for ($i = 0; $i < $padLength; $i++) {
            $source .= $paddingChar;
        }

        return $source;
    }

}
<?php
    class MCrypt {
        ...