PHP 치명적인 오류에 대한 해결 방법: 정의되지 않은 함수 mime_content_type() 호출
PHP 프로젝트를 개발하는 과정에서 때때로 이 문제에 직면하게 됩니다. - "PHP 치명적인 오류: 정의되지 않은 함수 mime_content_type() 호출", 이 오류는 일반적으로 PHPMailer를 사용하거나 파일을 업로드할 때 발생합니다. 이는 실제로 PHP 버전이 다르거나 mime_content_type() 확장이 부족하여 발생합니다.
이 문제를 해결하는 방법은 무엇입니까? 다음으로 이 기사에서는 몇 가지 솔루션을 소개합니다.
방법 1: php.ini에서 mime_content_type()을 활성화합니다
첫 번째 방법은 php.ini 파일에서 mime_content_type() 함수를 활성화하는 것입니다.
PHP 설치 디렉터리에서 php.ini 파일을 열고, 파일에서 "extension=php_fileinfo.dll"을 검색하고, 이전 주석 기호인 ";"를 제거한 다음 저장하고 종료한 후 Apache 서버를 다시 시작하세요. . 이 dll 파일이 확장 디렉터리에 없으면 수동으로 dll 파일을 다운로드하여 php 확장 디렉터리에 복사해야 합니다.
Linux 시스템을 사용하는 경우 php.ini 파일을 편집하고 "extension=fileinfo.so"를 검색한 후 이전 주석의 주석 처리를 제거하여 mime_content_type() 함수를 활성화하세요.
방법 2: php 및 fileinfo 확장 설치
두 번째 방법은 php 및 fileinfo 확장 설치입니다.
먼저 터미널에 php -v 명령줄을 입력하여 현재 PHP 버전을 확인하세요. PHP5라면 fileinfo 확장 프로그램을 직접 설치하세요. 다음 명령줄을 입력하세요:
sudo apt-get install -y fileinfo
PHP7인 경우 다음 명령줄을 입력하세요.
sudo apt-get install -y php7.X-fileinfo(여기서 X는 PHP 버전입니다) 번호)
설치가 완료된 후 Apache 서버를 다시 시작하면 문제가 해결됩니다.
방법 3: 코드 수정
세 번째 방법은 코드 수정입니다.
PHPMailer에서 다음 코드를 기반으로 다음 줄을 추가하세요:
if (!function_exists('mime_content_type')) {
function mime_content_type($filename) {
return new finfo(FILEINFO_MIME_TYPE, '/usr/share/ misc/magic');
}
}
간단한 업로드 파일을 사용해야 하는 경우 파일 업로드 코드에서 다음 코드에 따라 판단할 수 있습니다.
if (function_exists('mime_content_type') ) {
$type = mime_content_type($filename);
} else if (function_exists('finfo_file')) {
$finfo = finfo_open(FILEINFO_MIME_TYPE); $type = finfo_file($finfo, $filename);finfo_close ( $finfo);
} else {
$type = 'application/octet-stream';
}
참고: 위 코드는 참조용이므로 실제 개발 요구에 따라 수정해야 합니다.
위의 내용은 PHP 치명적인 오류: 정의되지 않은 함수 mime_content_type() 호출에 대한 몇 가지 해결 방법입니다. 특정 방법은 상황에 따라 선택해야 합니다. 어떤 방법을 사용하든 목적은 mime_content_type() 함수를 사용하여 치명적인 오류 문제를 해결하는 것입니다.
위 내용은 PHP 치명적인 오류에 대한 해결 방법: 정의되지 않은 함수 mime_content_type() 호출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!