php – Неустранимая ошибка: вызов неопределенной функции mcrypt_get_iv_size () в AppServ

Я нашел проблему, когда я использую функцию mcrypt_get_iv_size через AppServ .

Я пытаюсь найти тему, которая связана с решением проблемы.

Тем не менее, я пытаюсь загрузить libmcrypt.dll в symtem32 и редактировать php.ini, удалив комментарий с ;extension=php_mcrypt.dll для extension=php_mcrypt.dll . Затем перезапустите apache.

К сожалению, после перезагрузки страницы, чтобы увидеть результат после изменения.

Это все еще ошибка, поскольку

Неустранимая ошибка : вызов неопределенной функции mcrypt_get_iv_size () в C: \ AppServ \ www \ folder \ index.php в строке 36

Функция содержит следующее:

 class Encryption { var $skey = "SuPerEncKey2010"; // you can change it public function safe_b64encode($string) { $data = base64_encode($string); $data = str_replace(array('+','/','='),array('-','_',''),$data); return $data; } public function safe_b64decode($string) { $data = str_replace(array('-','_'),array('+','/'),$string); $mod4 = strlen($data) % 4; if ($mod4) { $data .= substr('====', $mod4); } return base64_decode($data); } public function encode($value){ if(!$value){return false;} $text = $value; $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv); return trim($this->safe_b64encode($crypttext)); } public function decode($value){ if(!$value){return false;} $crypttext = $this->safe_b64decode($value); $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv); return strtolower(trim($decrypttext)); } } 

Solutions Collecting From Web of "php – Неустранимая ошибка: вызов неопределенной функции mcrypt_get_iv_size () в AppServ"

http://php.net/manual/en/mcrypt.requirements.php

mcrypt уже встроен для PHP 5.3.x для Windows, поэтому вам не нужно устанавливать libmcrypt.dll на ваш сервер.

Похоже, что расширение php_mcrypt.dll не загружено.

На Ubuntu, с PHP 5 и Apache, вам нужно запустить:

 apt-get install php5-mcrypt php5enmod mcrypt service apache2 restart 

Если вы используете PHP 7:

 apt install php7.0-mcrypt 

Мне пришлось установить библиотеки mcrypt на CentOS 7 x86_64 для вышеупомянутой проблемы.

Вот что я сделал для установки зависимостей php-mcrypt и libmcrypt.

 wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm rpm -ivh epel-release-7-5.noarch.rpm yum install --enablerepo="epel" php-mcrypt 

с пользователем «root» или sudo

с этим не нужно добавлять «расширение = php_mcrypt.dll» в файл php.ini