php

'?' 조건부 연산자 조건식의 결과에 따라 참과 거짓의 값 중 하나를 반환한다. =>조건식이 참일 경우 : 앞의 값을, 거짓일 경우 뒤의 값을 반환한다. 문법 조건식 ? 참일때의 값 : 거짓일때의 값 예제 $age = 18; $message = ($age >= 20) ? "성인입니다" : "미성년자입니다"; echo $message; // "미성년자입니다" 출력 age가 조건식인 20보다 작으므로, 거짓이되어 : 뒤의 값인 "미성년자입니다"를 출력하게 된다. PHP '?' 연산자는 5.3 버전 이상 부터 모두 사용할 수 있다. PHP 버전이 5.2라면 if-else구문을 사용해야 한다.
비동기 실행 라이브러리 비동기 실행을 가능하게 하는 라이브러리가 몇 가지 있는데, 그 중 하나는 "ReactPHP"다. ReactPHP는 이벤트 기반 비동기 프로그래밍을 지원하는 PHP 라이브러리다. 이를 사용하면 새로운 파일 실행 요청을 즉시 처리하고, 실행이 완료될 때까지 다른 요청을 처리할 수 있다. PHP5에서는 비동기 프로그래밍을 지원하지 않아서 비동기 라이브러리를 직접 구현해야 한다. 멀티 프로세스나 멀티 스레드를 사용하여 비동기 작업을 처리하는 방법이 있다. 하지만 구현이 복잡하고 안정성 문제가 있을 수 있기 때문에 권장되는 방법은 아니다. PHP7부터는 비동기 프로그래밍을 지원하는 Swoole(https://www.swoole.com/)라는 라이브러리가 나왔다. 해당 라이브러리는 비동기 I..
태그가 안지워질 때 사용하는 방법 1. html_entity_decode 사용 2. 해당 함수를 사용한 이후, strip_tags 사용 3. 필요한 정규식을 사용하여 preg_replace를 통한 텍스트 대체 $string = html_entity_decode($string); $string = strip_tags($string); $string = preg_replace('/[_]+/', '', $string);
아래는 작성한 샘플 코드이다. if ($keywordMatch == True && ($old_project == "A" || $old_project == "B") && ($new_project == "C" || $new_project == "D" || $new_project == "E" || $new_project == "F" || $new_project == "G" || $new_project == "H" || $new_project == "I")) { $keyword_batch = "update table_{$new_project} set check = 1 WHERE project = {$old_project} and status = 01"; mysql_query($keyword_batch); } i..
DateTime::__construct(): Failed to parse time string ( 13 March 2023) at position 0 (�): Unexpected character 사용한 코드는 아래와 같다. 날짜 변환함수를 사용하는데, 위와 같은 에러가 발생하였다. try { $strCommentDate = new DateTime($strCommentDate); } catch(Exception $e) { echo $e->getMessage(); } 예기치 않은 문자(인쇄할 수 없거나 인식할 수 없는 문자)가 포함되어있어서 실패하게 된 것이다. 다른 여러 방법들도 있겠지만, 정규식을 통해 해결하였다. preg_replace('/[^\x20-\x7E]/', '', $text); 위 정규식은..
보통은 한글이 깨지는 경우가 많은데, 영어도 인코딩이 깨졌다. 근데 이것저것 추가해봐도 잘안되서 챗GPT에게 질문하였다. 내가 시도한 것 1. 헤더에 인코딩 지정하기 header('Content-Type: text/html; charset=utf-8'); 2. iconv 사용하기 iconv('iso-8859-1', 'UTF-8', $text); 그런데도 적용이 안되었다.. 해결방안 첫번째 시도 mb_internal_encoding('UTF-8'); $text = iconv('ISO-8859-1', 'UTF-8', $text); 이미 기존에 시도했던 것들이다. 두번째 시도 원본 웹에서 인코딩을 확인했다. UTF8과 iso-8859-1 로 되어있었다. // 기존 $text = iconv('ISO-8859-1..
문자열이 잘리는 경우가 발생해서 확인해보니, 인코딩 문제인 것 같았다. iconv에서 발생한 문제였다. iconv 함수로 캐릭터셋을 변경할 때, 텍스트가 잘리는 경우가 있다. 확인해보니 변환될 캐릭터셋에서 표현하지 못하는 문자를 만날 경우, 해당 문자 이전까지만 return되어 텍스트가 잘리는 현상이 발생한 것이였다. 변환하고자하는 인코딩에 '//IGNORE'을 추가하면 오류 문자는 무시하게 되어 전체 텍스트가 출력된다. $strText = iconv("euckr", "utf8", $strText); # 기존 $strText = iconv("euckr", "utf8//IGNORE", $strText); # 변경 //IGNORE 추가 이 외에도 DB에 데이터가 잘리는 경우에 테이블 인코딩, 이모티콘/이모지..
그동안의 시도 방법들... php/ext/openssl 에서 phpize로 설치도해보고 php.ini에서 extension_dir 에 /ext 추가도해보고 extension = openssl.so 추가도 해봤지만 다 에러나고 enable로 바뀌지도 않았다. 다른 서버에 셋팅해둔거 보니까 위의 작업을 하지않았는데도 enable로 되어있고, phpinfo()를 확인했을 때 소켓에 ssl이 들어있었다. Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, sslv2, tls 현재 셋팅 중인 서버에는 소켓에 ssl가 들어있지 않았다. 확인해보니 php5.3부터는 ssl을 별도로 설정해줄 필요가 없다는 것 같은데 왜이렇게 안되지는지 답답했..
곽진돔
'php' 태그의 글 목록