PHP8 버전에서 화면에 표시 되는 오류에 대한 문제 > PHP
PHP

PHP8 버전에서 화면에 표시 되는 오류에 대한 문제

조회 1,376회 댓글 0건

프로그램이 멈추는 경우도 있기 때문에 이런 경우는

try {} catch {} 로 잡아서 멈추지 않게 처리 해야 합니다.


1b4fb7ac22e13ded2ea669d5c292fa83_1731159739_791.png
 

● 오류 로그와 관련하야 PHP 8 에서 중요한 부분은 아래와 같습니다.

- 에러 출력을 위한 설정 - 반드시 로그를 남기는 것이 있어야 화면에 출력이 되질 않는다.

- 그리고 예외처리 해서 잡은 것은 당연하게 echo 찍은 것이면 화면에 출력이 된다. 

그렇기 때문에 웹사이트 제작시에는 적합하지 않기 때문에 함수 안에서 오류를 돌려 주고 필요한 경우만 출력하게 해야 합니다. 



    # error 출력을 위한 설정 - 반드시 로그를 남기는 것이 있어야 화면에 출력이 되질 않는다.
    ini_set('display_errors', '1');
    ini_set('log_errors', '1');
    ini_set('error_log', __DIR__ . '/log/php-error.log');
    // echo ini_get('display_errors');
    // error_reporting(E_ALL);

    // // 의도적으로 오류 발생
    // echo $undefined_variable;
    // // exit;
 
  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
전체 227건 1 페이지
  • profile_image 여기서의 예는 데이터베이스 접근을위한 정보를 생성자에 넣어주는데 이것이 디버깅할때 보이는 문제를 해결 하기 위한 것입니다.결론부터 말하면 디버그용 매직메소드를 사용하면 됩니다. print_r() 같은 것으로 디버깅하기 위해서 화면 출력을 하면 private의 변수 값이 출력 되는데 이를 방지 하기 위한 예를 들면 다음과 같습니다.    class MysqliDatabase    {        private $masterInfo = ['password' => 'secret123'];        private $mode = 'master';        public function __construct($aMast…
  • profile_image 단축URL을 만드는 목적엔 여러가지가 있지만 QR코드를 사용하기 위해서도 많이 사용됩니다.유튜브의 주소도 끝을 보면 단축URL처럼 코드로 되어 있지요 만드는 기본만 알면 되는데 원리는 간단하고 다음과 같습니다.이것만 알면 나머지는 뚝닥뚝닥 만들면 되기 때문입니다.1) 우리는 DB에 넣을때 고유한 번호의 숫자를 레코드 관리를 위해 넣어줍니다. 보통 id란 컬럼을 사용2) 이 숫자는 10진수 인데 이걸 62진수 같은것으로 만듭니다. 이게 우리가 보는 단축URL 코드3) 단축URL 사이트는 짧을 수록 좋기 때문에 짧은 도메인 생성4) QR코드 라이브러리 활용해서 QR코드 만들면 됩니다.    /**     * ID 난독화  …
  • profile_image 스케줄러에 등록된 프로그램에서 특정 함수 사용하는것이 있을 경우 어느 프로그램에서 사용하는지 알고 싶어서 만들게 된 프로그램 입니다.사용은 이렇게 했지만 반드시 그럴 필요는 없지요.특정 약간 수정해서 특정 디렉토리에 있는것을 찾을 수도 있고. 웬만한것은 쉘스크립트로도 가능할듯.         // cron_php_word_search_functions.php    // 설명: crontab/스케줄러 파일들을 읽어서 php 파일 경로를 찾아    //       해당 php 파일 내용에 미리 지정한 단어들이 있는지 확인합니다.    /**    * 크론 파일들을 전체 스캔하고 결과 출력    * @param array $…
  • profile_image 장시간 실행 시키는 프로그램이 있는데 죽네요.그냥 죽기나 하면 자원 소모가 없을것인데 .... 애가 멈춘현상이 있어 프로세스를 강제로 종료해야 되는 상황인데 API 호출 하면서 거기서 문제가 있는듯 합니다. 내부 구조는 난 모르겠고 다시 받으면 되기 때문에 무한 루프 돌면서 파일 갱신 시간이 1분 넘었으면 무조건 kill 처리하고 다시 실행 시키는 프로그램 입니다.이때 사용하는 것인데 대략 다음과 같습니다.이건 당연히 웹서버가 아니라 리눅스 쉘에서 높은 권한으로 실행시키는 프로그램 입니다. 혹시 PHP라고 하니 웹브라우저를 통해 웹서버에서 실행한다고 생각 하시는 분은 없겠죠?시스템에 따라 다를 수 있지 않을까 싶은데 제…
  • profile_image MRTG나 각종 관제용 프로그램을 사용하는곳에선 필요하지 않지만 소규모로 운영하는 곳은 이런것이 필요 합니다.그리고 은근히 디스크용량 때문에 발생하는 문제 들이 있습니다. 나도 모르게 로그가 많이 쌓여서 disk full 만들어 다른 문제를 야기 시키죠충분한 디스크 용량이 있으면 괜찮은데 그렇지 아니한 경우는 반드시 이러한 프로그램이 필요 합니다.이렇게 하여 SMS나 텔레그램 같은 곳으로 전달을 받아 운영 관리를 하면 되겠지요.     class DiskUsageChecker {        /** @var int 사용률 임계값 (%) */        private $iThreshold = 95;        publ…
  • profile_image 결론 부터 말하면 utf-8이 아니라 utf-8 bom을 사용하면 됩니다.방법은 아래와 같이 무척 간단하게 맢에 붙여 주기만 하면 엑셀에서 csv파일 열였을때 cp949가 아니라 utf-8일때도 한글 잘 보입니다.utf-8과 utf-8 bom은 호환되기 때문에 파일의 헤더부분에 utf-8 bom 이라고 표시만 해주면 되는 방식 입니다.     // UTF-8 BOM 추가 (엑셀에서 한글 인식용)    $utf8_bom            = "\xEF\xBB\xBF";    $wrtSize             = file_put_contents($wrtFile, $utf8_bom . $csvDataH); utf-8만 …
  • profile_image 한글이 먼저 설치 되어 있어야 하고 HWP 프로그램의 API를 이용하는 방법입니다.그렇기 때문에 아래 PHP는 한글프로그램(hwp) 설치 되어 있지 않다면 사용할 수 없습니다. 그리고 윈도우용 PHP에서만 가능하며 com 읽을 수 있도록 php.ini에서 설정이 되어 있어야 합니다.프로그램은 대략 아래와 같이 하면 됩니다.    $oHtpCtrl  = new Com('HWPFrame.HwpObject');    //  regsvr32 E:\hwp\FilePathCheckerModuleExample.dll    $oHtpCtrl->RegisterModule("FilePathCheckDLL", "FilePathChec…

상업적 이용 금지. 컨텐츠는 개인 용도로만 사용이 가능 합니다.