PHP: 이미지 섬네일(Thumbnail) 만들기 (Imagick 이용)

Imagick이 PHP 서버에 설치된 경우, 아래 코드를 이용하여 이미지 섬네일을 만들 수 있습니다. 저는 이용하는 호스팅 서버에 해당 프로그램이 설치가 되어 있어 별도 작업을 하지 않고 바로 사용하지만, 설치가 안된 경우에는 링크를 참고하여 설치하세요. 다음 함수를 추가합니다. /** * * Generate Thumbnail using Imagick class * * @param string $img 더보기…

PHP: 날짜 시간 관련 함수(date, time, strtotime, mktime)

시간 포맷 사용 – date() 함수 두 번째 파라미터는 nullable이며, 특정 타임스탬프를 지정하면 해당 타임스탬프의 날짜를 반환하고, 아니라면 time() 현재 시각을 반환합니다. // set the default timezone to use. Available since PHP 5.1 date_default_timezone_set(‘UTC’); // Prints something like: Monday echo date(“l”); // Prints something like: Monday 8th of August 2005 더보기…

PHP, Mysql: 좋아요 기능 만들기

예전에 PHP로 만들었던 간단한 CRUD 게시판에 ‘좋아요 기능’을 추가해보도록 하겠습니다. ‘좋아요 기능’은 빈 하트(♡)를 누르면 하트가 채워지면서(♥) 숫자 카운트가 올라가는 기능입니다. PHP: 데이터베이스 접근 기초(SELECT, INSERT, UPDATE, DELETE) 여기서는 로그인 기능이 구현되지 않았으므로 아이피 주소(IP Address)를 기준으로 중복 좋아요를 방지하도록 하겠습니다. 만약 로그인이 구현되어 있다면 로그인한 유저를 기준으로 중복 좋아요를 더보기…

PHP, Mysql: SELECT JOIN 문 실행시 중복된 이름의 열(컬럼) 결과를 가져오는 방법

Q. 내 데이터베이스에 두 개의 테이블이 있습니다. 컬럼이 있는 NEWS 테이블: id – 뉴스 ID user – 작성자의 사용자 ID 컬럼이 있는 USERS 테이블 : id -사용자 ID 이것에 대한 SQL을 실행하려고 합니다. SELECT * FROM news JOIN users ON news.user = user.id PHP에서 결과를 얻을 때 컬럼 이름을 $row[‘컬럼이름’]으로 가져오는 경우, 동일한 더보기…

PHP: mysql_fetch_array() 에서 while() 대신에 foreach()를 사용하는 방법

Q. foreach와 함께 작동하도록 다음 코드를 어떻게 변환하는지 알고 싶습니다. $query_select = “SELECT * FROM shouts ORDER BY id DESC LIMIT 8;”; $result_select = mysql_query($query_select) or die(mysql_error()); while($row = mysql_fetch_array($result_select)) { $ename = stripslashes($row[‘name’]); $eemail = stripcslashes($row[’email’]); $epost = stripslashes($row[‘post’]); $eid = $row[‘id’]; echo $eid . ‘<br/>’; echo $ename . 더보기…

PHP: JSON 스트링을 객체 또는 배열로 변환, explode, str_replace, 대소문자 변경방법

1) JSON을 배열로 변환 객체(stdClass)로 변환하는 방법 $array_data = json_decode($str, false); // 또는 $array_data = json_decode($str); 배열로 변환하는 방법 $array_data = json_decode($str, true);   2) explode 다른 언어의 String.split과 기능이 비슷합니다. 스트링의 경계기호(delimiter) 문자를 기준으로 배열을 생성합니다. $date = “2020-08-25”; // explode(delimiter, string) $exploded = explode(‘-‘, $date); echo $exploded[0]; // 더보기…

PHP: BCrypt 해싱값과 평문 비교

password_verify($plain_text, $hashed_text) $plain_text에는 평문값을 입력하며, $hashed_text에는 BCrypt 형식으로 해싱된 텍스트를 집어넣습니다. BCrypt는 특성상 해싱값에 솔트(salt)가 들어가기 때문에 일반적인 텍스트 비교는 솔트값을 모른다면 불가능하며, 위의 방법으로 대조해야 합니다. 평문과 해싱값이 일치하면 true, 아니면 false를 반환합니다.   예제 logic_proc.php 18번 라인에 있습니다.

웹 사이트 예제: 음악 스케일 목록

웹사이트 바로가기 이 웹사이트의 기능은 다음과 같습니다. 스케일 목록을 데이터베이스에서 읽어서 테이블 형태로 나열 (PHP) 각 목록을 클릭하면 스케일의 정보와 악보, 소리듣기 기능을 제공 (abcjs 이용) 스케일의 정보는 이름, 별칭(Alias), 설명(Description), 중요도(Priority), 패턴이 있음 악보 및 사운드 생성은 스케일의 Pattern 정보를 이용하여 생성 (PHP 음악 스케일 구하기) 조옮김(Transpose), 이명동음 표시기능 더보기…

PHP: FTP 내의 디렉토리 및 파일 탐색하기(재귀호출)

PHP 계정에서 다음과 같은 구조로 파일이 존재하고 있습니다. 목표는 files 디렉토리(폴더) 내에 있는 파일들을 탐색하고, 파일들의 정보(이름, 확장자, 크기 등)를 표시 및 데이터베이스 테이블에 입력하는 것입니다. 핵심 코드는 아래와 같습니다. $dir = ‘./files’; $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)); $dir은 탐색 대상 디렉토리의 루트 경로를 입력합니다. 현재 작성중인 php 파일과 files 더보기…

PHP 예제: 음악 스케일 구하기

이 예제는 개인 작업중인 내용을 주요 부분만 추출한 것으로, 패턴(pattern)이라는 파라미터를 입력하면 루트 음을 고려한 스케일을 계산하여 json으로 뿌려주는 php 예제입니다. 파라미터는 pattern, transpose 두 개가 있습니다. 여기서 패턴은 스케일의 각 두 음 사이간의 반음 간격을 semitone이라는 단위로 표시한 것을 일렬로 나열한 것입니다. 예를 들어 C와 D의 반음 간격은 2이며, 더보기…