zgabriel의 등록된 링크

키자드에 등록된 총 535개의 포스트를 확인하실 수 있습니다.

Naver Blog

요일체크하기

$week = array("일요일","월요일","화요일","수요일","목요일","금요일","토요일"); echo $week[date("w",strtotime(date('Y-m-d')))]; echo $week[date("w")];

Naver Blog

URL 로 파일다운로드

원격서버에 있는 파일을 URL 로 다운로드 하는 방법 $url : 다운로드 받을 파일의 URL $dest : 저장할 경로 + 파일명 function getUrlFile($url, $dest){ if(!$url || !$dest) return false; $content = file_get_contents($url); if(!$content) return false; $fp = fopen($dest, 'w'); $rst = fwrite($fp, $content); fclose($fp); return $rst; }

Naver Blog

모바일 접속 체크

$mobile = "/(iPhone|iPad|iPod|Android|BlackBerry|SonyEricsson|Nokia|Windows CE|Opera Mini|webOS)/"; if(preg_match($mobile,$_SERVER['HTTP_USER_AGENT'])){ echo "모바일에서 접속"; }

Naver Blog

[윈도우7] 엑셀 연결프로그램 오류 해결방법

기본 설정방법인 우클릭을 하여 지정하는 방식이 되지 않을 경우 아래의 방법을 사용한다 * 화면 좌하단에 있는 윈도우 버튼을 누르면 '프로그램 및 파일 검색' 입력란이 나온다 * regedit 를 입력하고 엔터 * 레지스트리 편집기 창이 나타나면 아래의 경로로 이동합니다. HKEY_CLASSES_ROOT\.xlsx * .xlsx 폴더를 선택하고 오른쪽 창에서 기본값 ad를 선택합니다. 데이터 값이 [Excel.Sheet.12]이 아닐 경우 [Excel.Sheet.12]로 수정하고 레지스트리 편집기 창을 닫습니다.(영문 소대문자 구분하여 입력합니다.) * xlsx 파일을 마우스 오른쪽을 클릭한 후 연결 프로그램을 excel로 다시 지정한 후 더블 클릭하여 열기 시 정상적으로 열기가 되는지 확인 합니다.

Naver Blog

[윈도우7] 절전모드시 자동으로 켜지는 현상

윈도우7에서 절전모드를 실행하면 다시 켜지는 문제가 있다면 아래와 같이 하면된다. 명령 프롬프트창에서(시작 실행창에서 cmd) 에서 powercfg -devicequery wake_armed 를 실행하면 시스템을 깨우는 장치를 찾을 수 있다. 장치를 찾았다면 제어판>장치관리자에가서 해당 하드웨어의 속성에 들어가 전원관리에 들어가면 "이 장치를 사용하여 컴퓨터의 대기 모드를 종료할수 있음" 이 나오는데 체크 박스를 오프하면 된다. 보통 랜카드, 마우스가 주범인 경우가 많다.

Naver Blog

10진수, 2진수 변

bindec("1111"); //2진수->10진수 decbin("10"); //10진수->2진수

Naver Blog

[HTML] audio 태그

* 종료 이벤트 넣기 : 음악재생이 끝나면 발생하는 이벤트 . <audio id=player src="" autoplay=true onended='playEnd()' controls> . 음악재생 종료시 playEnd 함수호출

Naver Blog

클래스 이름가져오기

<div class="dv_1" name="dv_5"></div> $('div').attr('class') - 클래스 이름 가져오기 $('div').attr('name') - 네임 값 가져오기

Naver Blog

윈도우즈 버전 문자열 및 정보

php 의 $_SERVER['HTTP_USER_AGENT'] 에서 os 정보를 가져올 수 있는데 이때 아래의 사이트를 참고하면 윈도우 버전을 확인 할 수 있다. https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions

Naver Blog

select 박스

값 가져오기 . name 일 경우 : $("select[name=tt] option:selected").val() . id 일 경우 : $("#tt option:selected").val()

Naver Blog

숫자 자리수 맞추기

숫자를 자리수에 맞춰 0으로 채워줘야 할때 아래와 같이 사용한다 //5자리수일 경우 - 자리수 만큼 앞으로 0을 채워준다 leftPad(2, 5); -> 00002 //숫자 자리수 맞추기 function leftPad(n, width) { n = n + ''; return n.length >= width ? n : new Array(width - n.length + 1).join('0') + n; }

Naver Blog

날짜함수

. date("Ymd", strtotime("-90 day", time())) . date_sub(current_date(),interval 1 day)

Naver Blog

[2021 마이 블로그 리포트] 블로그 빅데이터로 알아보는 '2021 내 블로그 스타일'

메모였다 2021 마이 블로그 리포트 2021년 당신의 블로그 스타일을 확인하고 네이버페이 GET하세요! campaign.naver.com

Naver Blog

[파이썬] cloudflare 우회해서 크롤링 하기 - zenrows

보안을 위해 cloudflare 를 사용하는 페이지들이 있다. 이런 페이지를 크롤링하려면 여러가지 난관들이 있는데 구글링을 열심히 한 결과 한 가지 방법을 찾을 수 있었다. 1. https://www.zenrows.com/ 사이트에 가입 후 빌더에서 api key 를 생성한다 2. 아래와 같이 소스에 api key를 사용해서 크롤링한다 import requests from bs4 import BeautifulSoup as bs url = 'SITE_URL' apikey = 'API_KEY' params = { 'url': url, 'apikey': apikey, 'js_render': 'true', 'premium_proxy': 'true', } response = requests.get('https://api.zenrows.com/v1/', params=params) soup = bs(response.text, "html.parser") temp = soup.find("div",i

Naver Blog

상암동 맛집 대박동

Previous image Next image 원래 떡볶이집 맛집 자리였는데 갑자기 사라지더니 대박동이라는 집이 생겼다. 동료가 괜찮아 보인다고 해서 점심에 방문했는데 분위기도 깔끔하고 조명도 이쁘다. 대표 메뉴인 돈부리 대박동 + 한맥 생맥을 한잔 시켜서 먹었는데 너무 잘어울린다. 다음에도 다른 메뉴로 시도해보고 싶은 식당이다. 추천~~ https://map.naver.com/p/entry/place/1167895700?c=15.00,0,0,0,dh&placePath=/home 네이버 지도 공간을 검색합니다. 생활을 연결합니다. 장소, 버스, 지하철, 도로 등 모든 공간의 정보를 하나의 검색으로 연결한 새로운 지도를 만나보세요. map.naver.com

Naver Blog

깃허브 사용법 - github

로컬에 git 을 설치했다면 이제 깃허브에 가입해서 원격저장을 해보자 * https://github.com 회원가입 * 가입 완료 후 "create repository" 로 저장소를 생성 . 이름에 본인 프로젝트명을 넣는다 . 생성이 완료되면 저장소 URL 이 나오는데 이를 GIT 과 연동한다 * git 과 연결하기 . c:\projects\mysite>git remote add origin https://github.com/myid/mysite.git . git push -u origin main 후 로그인까지 진행 . 이후 비밀번호를 묻지 않도록 설정하려면 "git config credential.helper store" 해주면 된다. * 원격 저장소에 저장하는 순서 . 소스변경 . git add * . git commit -m "코멘트 입력" . git push

Naver Blog

[django] views.py 여러 개 파일로 분리하기 2

views.py를 분리하는 2번째 방법은 urls.py에 모두 정의해주는 방법이다. 일단 첫 번째 방법과 동일하게 views.py를 분리 저장 후 myapp/urls.py 에 아래와 같이 정의해준다 from .views import a_views, b_views, c_views path('', a_views.index, name='index'), path('<int:question_id>/', b_views.detail, name='detail'), path('<int:question_id>/', c_views.detail, name='detail'), 위 와 같이 어떤 뷰를 참조하는지 명시적으로 표시하기 때문에 유지보수 시 유리하다. 물론, vscode 를 사용할 경우 alt+f12를 이용하면 바로 추적이 가능하기는 하지만.... config/urls.py 파일에 있는 부분도 아래와 같이 수정해줘야한다 from myapp.views import a_views path('', a_v

Naver Blog

Git 설치 및 사용방법

윈도우에서 git 을 설치해서 사용하는 방법에 대해서 다뤄보자 일단 다운로드하여 설치 - https://git-scm.com 설치가 완료되었다면 git 으로 관리할 프로젝트 폴더로 이동하여 아래와 같이 진행한다. . c:\projects\mysite>git init Initialized empty Git repository in C:/projects/mysite/.git/ 그러면 .git 디렉토리가 생성된다. 이후 깃의 관리는 이 디렉토리에서 이뤄진다. * git status . c:\projects\mysite 폴더에서 'git satus'를 실행하면 현재 저장소의 상태를 출력해준다 * gitignore . git 으로 관리자하지 않을 (.idea, jquery.min.js 등) 파일을 지정한다 . c:\projects\mysite 폴더에 .gitignore 파일을 생성한 후 아래와 같이 입력한다. .idea db.sqlite3 *.pyc __pycache__ * git add .

Naver Blog

[django] 소스 수정 후 적용방법

"장고 + 아파치로 웹서비스 시 소스 변경 후 적용이 안된다면?" 이 문제로 구글링을 계속 해봤지만 누구는 세팅 정보가 아니면 바로 적용된다고 하고 누구는 아파치를 재시작 해야한다고 설명했다. 직접 테스트를 해본 결과로는 바로 적용이 되었다가 안되었다가 하는데 한번 안되면 하루가 지나도 안되고 아파치를 재시작해야만 적용이 되었다. 느낌 상으로는 수정을 하다가 오류가 발생하면 적용이 막히는 느낌이다. (이것도 모르겠다 ㅜㅜ) 정확한 정답은 아직 모르겠으나 어쨌든, 뭔가를 해줘야 하기는 해야할 것 같은데 서비스를 하고 있는데 소스 변경할 때마다 아파치를 재시작하는건 위험한것 같다. 그래서, 찾은 다른 방법은 아래와 같다. "장고 애플리케이션을 다시 로드한다!!" 1. mod_wsgi 를 사용할 경우 장고 애플리케이션을 다시 로드하는 방법 . 터치 파일 사용: 아파치 설정 파일(httpd.conf 또는 sites-available 설정 파일)에서 WSGIApplicationGroup %{

Naver Blog

[파이참] import 문 최적화 복사

파이참에서 import 문을 다른 파일로 복사해서 옮기는 경우 복사 -> 신규 파일로 이동 -> ctrl + alt + o 이럴 경우 최적화해서 정리해준다.

Naver Blog

[django] views.py 여러 개 파일로 분리하기 1

views.py에 모든 함수를 넣다보면 분리해 줘야하는 시점이 온다. 이럴 경우 아래와 같이 분리를 진행하면된다. - views 폴더를 생성 - views.py에 있는 함수들을 기능별로 분리해서 신규 생성한 views 폴더에 저장한다 (a_views.py, b_views.py, c_views.py ...) . 신규 생성한 view 파일들의 import 문은 파일의 위치가 변경되었으므로 수정해줘야한다 예) from .models -> from ..models - __init__.py 파일을 views 폴더에 생성 . 여러개로 분리한 view 파일들을 모두 import 해준다 from .a_views import * from .b_views import * from .c_views import * . views 디렉토리에 있는 모든 뷰 파일을 import 했기 때문에 urls.py와 같은 다른 파일은 수정하지 않아도 된다 - views.py는 삭제 * 단점 장고는 디버깅시 보통 urls

Naver Blog

[django] 템플릿에서 for문 사용하기

* 모델이 없는 for 문 (1 ~ 10) {% for i in "x"|rjust:"10" %} - for count : {{ forloop.counter }} <br><br> {% endfor %} . forloop 속성 - forloop.counter : 루프내의 순서로 1부터 표시 - forloop.counter0 : 루프내의 순소러 0부터 표시 - forloop.first : 루프의 첫번째 순서인 경우 true - forloop.last : 루프의 마지막 순서인 경우 true

Naver Blog

[djanog] 자바스크립트 사용하기

>> 자바스크립트를 넣을 자리에 아래 코드를 삽입니다. <!-- 자바스크립트 Start --> {% block script %} {% endblock %} <!-- 자바스크립트 End --> >> 실제 자바스크립트를 코딩한다. 아래 스크립트가 위의 block script 에 들어간다 {% block script %} <script type='text/javascript'> const delete_elements = document.getElementsByClassName("delete"); Array.from(delete_elements).forEach(function(element) { element.addEventListener('click', function() { if(confirm("정말로 삭제하시겠습니까?")) { location.href = this.dataset.uri; }; }); }); </script> {% endblock %}

Naver Blog

[파이썬] for 문 사용법

* 모델이 있는 for문 for object in object_list: print(object.title) * 모델이 없는 for문 for i in range(1,11): #1~10까지 출력 print(i)

Naver Blog

[django] get_object_or_404

get_object_or_404 함수는 가져오고자 하는 객체가 존재하지 않으면 http404 에러를 발생시킨다. . from django.shortcuts import get_object_or_404 . question = get_object_or_404(Question, pk=question_id)

Naver Blog

[django] 회원가입함수

이 함수를 그대로 사용하지 않겠지만 참고용으로 적어본다. django 를 공부하는 입장에서는 공부가 될만한 함수이다. from django.contrib.auth import authenticate, login, logout from django.shortcuts import render, redirect from common.forms import UserForm def signup(request): if request.method == "POST": form = UserForm(request.POST) if form.is_valid(): form.save() username = form.cleaned_data.get('username') raw_password = form.cleaned_data.get('password1') user = authenticate(username=username, password=raw_password) # 사용자 인증 login(request, u

Naver Blog

[django] 폼의 입력 값 가져오기

폼의 입력 값을 개별적으로 얻고 싶을 경우 아래와 같이 코딩한다. . form.cleaned_data.get('username') #username 값을 가져온다.

Naver Blog

[django] 내장 템플릿 필터

* add : 변수에 값을 추가함 . {{"2"|add:"3"}} -> 5 . {{"te"|add:"st"}} -> test * addslashes : 따옴표 앞에 슬래시를 추가 . {{ value|addslashes }} * capfirst : 첫번째 문자를 대문자로 바꾼다 . {{ "test"|capfirst }} * center : 주어진 폭의 필드에서 중앙정렬 . {{ value|center:"15" }} * cut : 인수로 주어진 값을 모두 제거 . {{ "test"|cut:"e" }} -> e를 제거해서 tst 출력 * date : 지정된 형식에 따라 날짜 형식을 지정 . {{ value|date:"D d M Y" }} * default : 값이 false 이면 기본값으로 사용 . {{ value|default:'nothing' }} -> value 값이 false 나 빈값이면 nothing 사용 * default_if_none : 값이 None인 경우 기본값을 사용 .

Naver Blog

패밀리링크에서 기기 삭제하기

이번에 아이의 폰을 기기변경하다보니 패밀링크에 전에 사용하던 폰과 새로운 폰이 모두 있어서 기존 폰을 삭제하려고 하니 쉽지 않았다. 앱에서 여기저기 모두 클릭해봤는데 너무 불친절한 앱은 쉽사리 삭제를 해주지 않았다. 그래서 어쩔 수 없이 구글링..... 어렵게도 만들어놨다 ㅜㅜ 1. 웹페이지에서 구글에 접속 아이 계정으로 로그인을 한다. - 부모 계정까지 인증을 진행해야 로그인된다. 2. 구글 계정관리에 들어간다 - 오른쪽 상단에 아이콘을 클릭하면 구글 계정관리버튼이 나온다 3. 오른쪽 메뉴에서 '데이터 및 개인 정보 보호'를 클릭 4. 다른 사용자와 공유할 수 있는 정보에 '내 기기' 버튼 클릭 5. 해당 계정으로 로그인한 기기들 목록이 나오는데 여기에서 삭제를 원하는 기기를 클릭 후 로그아웃 해주면 된다.

Naver Blog

ckeditor 4 version is not secure 메세지 삭제

현재 ckeditor 4.22.1 버전을 사용하고 있는데 갑자기 아래와 같은 메세지가 출력되기 시작했다. "ckeditor 4.22.1 version is not secure ..." 결론은 업데이트 하라는건데 갑자기 할 수는 없으니 해당 메세지를 끄는 방법을 검색해봤다. config 설정하는 방법도 있던데 나같은 경우는 아래와 같이 css 로 처리했다. <style>.cke_notification.cke_notification_warning { display: none; }</style>

Naver Blog

괌 가족여행 - PIC 3박4일 정보공유

Previous image Next image 5.29 ~ 6.1 일정으로 괌 가족여행을 다녀왔습니다. 여러나라를 리스트에 올려두고 고민했는데(싱가폴, 대만, 태국등...) 날씨 및 비행시간등을 고려해서 괌으로 결정했습니다. 아무래도 애들이 놀기 좋고 비행시간도 적당하다는게 장접이었습니다. 다른 나라들은 우기이기도 했습니다. 저처럼 처음 가족여행을 괌으로 가시는 분들을 위해 글을 써봅니다. 비행기, 숙박 예약은 네이버를 통해서 했으며 비행기는 약 150만, 숙박은 260만 정도 지출했습니다. . 비행기 : 제주항공 . 숙박 : PIC 로얄클럽 + 모든 식사포함 + 골드카드 여행준비 . 입국서류, 세관신고를 미리 준비해가면 입국심사할 때 편합니다. . 구글맵에 맛집과 가야할 관광지를 미리 저장해 놓으면 운전할 때 편합니다. . 카드 결제 가능 상점이 많아서 환전은 팁용으로만 준비해도 괜찮습니다. 저희는 20만원 환전했는데 남아서 가격이 딱 떨어지는 식당에서만 사용했습니다. . 썬크림은

Naver Blog

input 태그 배열로 설정하기

여러개의 버튼을 배열로 설정하여 사용하고 싶을때 아래와 같이 이름을 동일하게 지정해주면 된다. <input type="text" class="input" name="news[]" value=""> <input type="text" class="input" name="news[]" value=""> <input type="text" class="input" name="news[]" value=""> <input type="text" class="input" name="news[]" value=""> 이렇게 하면 news[0] ~ news[3] 으로 데이터가 지정된다. jquery 로 처리시 . $("input[name='news[]']").length -> 전체 길이 . $('input[name="news[]"]')[i].value -> 값 가져오기

Naver Blog

[vscode] 유용한 단축키 모음

- Ctrl + H : 일치하는 텍스트 바꾸기 - Ctrl + `(백틱) : 터미널 열기/닫기 - Ctrl + B : 왼쪽 탐색기 창 끄기/켜기 - Shift + Alt + F / 전체 선책후 Ctrl + K + F : 자동 정렬 - Ctrl + G : 해당 라인으로 이동하기 - F12 / Ctrl + 클릭 : 해당 함수 정의문으로 바로 이동 - Alt + F12 : 해당 함수 정의문 엿보기

Naver Blog

[vscode] tabout 기능

vscode 를 사용하여 코드를 작성할 때 ', ", ( 등을 입력하면 자동으로 닫힘이 완성되는데 이럴때 내부 코드를 완성하고 나가려면 방향키를 이용하거나 마우스를 이용해야해서 번거로워진다. 이를 편하게 하기위한 기능이 tabout 이다. extentions 에 들어가 tabout 을 검색한 후 설치하면 바로 사용할 수 있다. 코드를 작성하다가 tab 키를 누르면 자동으로 커서가 닫힘 뒤로 이동한다.

Naver Blog

[vscode] No module named 'mysql.connnector' 해결

import mysql.connector 코드 사용시 vscode 에서 모듈이 없다고 경고가 발생한다 이럴 경우 vscode 터미널에 접속해서 아래 명령어를 입력해서 설치하면 처리된다. python -m pip install mysql-connector-python

Naver Blog

[django] crontab 설정하기

1. 크론탭을 설치한다. pip install django-crontab 2. setting.py 에 앱과 크론탭을 등록한다. INSTALLED_APPS = [ ... 'django_crontab' ] CRONJOBS = [ ('*/10 * * * *', 'myapp.cron.my_scheduled_job', '>> ./cron.log'), ] . CRONJOBS 에서 첫번째 입력 값은 리눅스 크론탭과 동일하게 분/시/일/월/요일 을 의미한다 . 두번째 입력 값은 앱.파일명.함수명을 의미한다. . 세변째 입력 값은 로그를 세팅한다. 3. manage.py 가 있는 폴더로 이동하여 크론탭을 등록한다. . python manage.py crontab add <- 작업등록 . python manage.py crontab show <- 작업확인 . python manage.py crontab remove <- 작업삭제 - 크론탭 등록 시 입력 값 넣기 . ('*/1 * * * *', 'tr

Naver Blog

실시간으로 로그 확인하기

서버에 로그를 남길경우 실시간으로 확인할 경우가 발생한다. 이럴때 cat 명령어가 아닌 tail 명령어를 사용하면 실시간으로 올라오는 로그를 확인할 수 있다. tail -f service.log . -f : tail을 종료하지 않고 파일의 업데이트 내용을 실시간으로 계속 출력한다. . -n (라인 수) : 파일의 마지막줄부터 지정한 라인수까지의 내용을 출력한다. . -c (바이트 수) : 파일의 마지막부터 지정한 바이트만큼의 내용을 출력한다. . -q : 파일의 헤더와 상단의 파일 이름을 출력하지 않고 내용만 출력한다. . -v : 출력하기전에 파일의 헤더와 이름 먼저 출력한 후 파일의 내용을 출력한다.

Naver Blog

[django] *.js 파일 저장 및 사용하기

사용하고자 하는 js 파일을 static 폴더에 저장한다. 그리고 아래와 같이 소스에 넣는다 <script src="{% static 'jquery-3.7.1.min.js' %}"></script>

Naver Blog

다른 파일에 있는 함수 사용하기

파이썬에서 다른 파일에 있는 함수를 사용하려면 import를 사용하면 된다. 만약 test.py 에 있는 testfunc 를 사용하려면 import test test.testfunc() 이렇게 사용하면 된다. import 뒤에 as 를 사용하여 별칭을 붙일 수도 있다 . import test as tt 위와 같이 import 하는건 같은 폴더에 존재하는 파일을 import 하는 것이고 만약 다른 폴더에 있는 파일을 import 하고 싶으면 . from folder_name import test as tt 이렇게 써주면 된다.

Naver Blog

[django] 로깅 구성 및 파일에 로그 쌓기

장고 시스템에서 로그를 세팅하고 쌓는 방법이다. 1. settings.py 에 LOGGING 을 아래와 같이 설정한다. from datetime import datetime cdate = datetime.now().strftime("%Y%m%d") LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'format_basic': { '()': 'django.utils.log.ServerFormatter', 'format': '[{asctime}][{levelname}][{name}] - {message}', 'datefmt' : '%y.%m.%d %H:%M:%S', 'style': '{', }, }, 'handlers': { 'file1': { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': BASE_DIR / f'logs/django_{

Naver Blog

[django] 템플릿 디렉토리 만들기

html 파일을 관리할 템플릿 폴더를 설정하는 방법 1. settings.py 에 폴더설정 . TEMPLATES 의 DIRS 설정 . 'DIRS': [BASE_DIR/'templates'], 2. 루트폴더에 templates 폴더생성

Naver Blog

[django] admin 페이지 CSS 깨짐해결

django를 설치하고 admin 에 접속하면 css가 깨져 나오는 경우가 있다. 해결 방법은 아래와 같다. 1. 프로젝트 최상위 디렉토리에 static 폴더를 생성 2. settings.py에 아래 코드 추가 STATIC_URL = 'static/' STATIC_ROOT = "/usr/web/backend/static" 3. urls.py 맨 아래에 아래 코드 추가 from django.conf.urls.static import static from django.conf import settings urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 4. 쉘에서 아래 명령어 실행 . python manage.py collectstatic settings.py의 debug를 true 하면 안된다는 이야기는 있는데 나의 경우는 4번까지만 진행해도 처리되었다

Naver Blog

[django] MySQL Strict Mode is not set for database connection 'default'

python manage.py migrate 실행 시 아래와 같은 오류가 발생한다면 WARNINGS:?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default' HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/4.2/ref/databases/#mysql-sql-mode settings.py의 database 설정에 아래 옵션을 추가해주면 된다. 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':

Naver Blog

SRT 를 VTT 로 변환

SRT 파일을 입력 받아 VTT 파일로 변환 저장하는 함수를 만들어봤다. srcFile 에 SRT 파일을 입력하고 destFile 에 vtt로 저장할 파일을 지정하면된다. function convertSRTtoVTT($srcFile, $destFile){ $srtString = file_get_contents($srcFile); if(!$srtString) return false; //엔코딩 체크 if(mb_detect_encoding($srtString, 'UTF-8', true) === false) { $enc = mb_detect_encoding($srtString, array('ASCII','UTF-16LE','WINDOWS-1252','EUC-KR')); $srtString = mb_convert_encoding($srtString, "UTF-8", $enc); } //배열처리 $temp = explode("\n", $srtString); $temp = array_filte

Naver Blog

[django] 장고 프로젝트 & 앱 만들기

1. mkdir project1 -> 프로젝트를 생성할 폴더를 만든다 2. cd project1 -> 해당 폴더로 이동한다 3. django-admin startproject config . -> 해당 프로젝트 폴더 아래 config 폴더와 manage.py 파일을 생성해준다 -> . 을 찍지 않으면 project1>cofing>config 로 생성되니 꼭 넣어야한다 -> config 폴더안에는 기본 파일들이 생성된다 - __init__.py - asgi.py - settings.py - urls.py - wsgi.py -> settings.py 에 들어가 아래 부분을 수정해 모든 아이피 접근을 허용한다 - ALLOWED_HOSTS = ['*'] 4. 앱을 생성하려면 project1 폴더에서 아래와 같이 명령어를 실행하면 된다 -> django-admin startapp app1 -> project1>app1 폴더가 생성된다

Naver Blog

[django] 장고 강좌리스트

https://wikidocs.net/70649 2-01 URL과 뷰 * `[완성 소스]` : [github.com/pahkey/jump2django/tree/2-01](https://github.com/pahkey/jump2django/tree/… wikidocs.net docs.djangoproject.com/ko Django 문서 | Django 문서 The web framework for perfectionists with deadlines. docs.djangoproject.com https://www.youtube.com/playlist?list=PLsGh7Wc318ki4pai-bsKz-iUQOPsGhljp 기초부터 제작하는 파이썬 장고(Python Django) 프로젝트 www.youtube.com https://www.youtube.com/playlist?list=PLQFurmxCuZ2RVfilzQB5rCGWuODBf4Qjo 작정하고 장고! Django로 Pintere

Naver Blog

django 사이트 접속 아이피 제한방법

구축한 장고 사이트에 접속하는 사용자 아이피를 지정할 수 있다. settings.py 의 ALLOWED_HOSTS 변경하면 되는데 아이피를 지정하고 싶으면 아이피 리스트를 넣으면 되고 모두 허영하고 싶으면 아래와 같이 하면 된다. . ALLOWED_HOSTS = ['*']

Naver Blog

Import &quot;django.contrib&quot; could not be resolved 해결 - vscode

vscode + python 설치 후 소스를 작성하면 아래와 같은 워닝이 출력된다. . Import "django.contrib" could not be resolved .... . Import "django.urls" could not be resolved .... 이건 django를 설치하지 않았기 때문에 나오는 경고 메세지들이다. vscode 터미널에서 아래 메세지로 django를 설치 후 재시작하면 사라진다. . pip install django

Naver Blog

[django] 장고 프로젝트 생성하기

1. 프로젝트를 만들 폴더로 이동. 보통 여러개의 프로젝트를 관리할 루트폴더를 만든다 2. mkdir project1 -> 프로젝트를 만들 폴더를 생성한다 3. cd project1 4. django-admin startproject config . -> . 을 찍어줘야 현재 디렉토리에 생성 -> 찍지 않으면 project1/project1 형식으로 생성된다

Naver Blog

네이버 파파고를 이용하여 번역하기

https://api.ncloud-docs.com/docs/ai-naver-papagonmt Papago Translation 을 사용하여 언어별 번역하는방법이다. 영어, 일어, 중국어를 지원하고 있으며 1회 최대 5천자를 번역해준다. 가격은 100만자당 2만원이고 curl로 호출하여 번역 결과를 받는다. 샘플 소스는 아래와 같다. $client_id = ""; $client_secret = ""; $encText = urlencode("[지금이뉴스] 테슬라의 이중고…`전기차 시장 둔화에도 경쟁은 더욱 치열`"); $postvars = "source=ko&target=en&text=".$encText; $url = "https://naveropenapi.apigw.ntruss.com/nmt/v1/translation"; $is_post = true; $headers = array(); $headers[] = "X-NCP-APIGW-API-KEY-ID: ".$client_id; $he

Naver Blog

구글 클라우드 번역 이용하여 번역하기

https://github.com/googleapis/google-cloud-php-translate/tree/v1.17.5 해당 페이지에 들어가면 설치부터 샘플코드까지 있다. 영어 / 일어 / 중국어 번역을 지원하고 한번에 30000까지 번역할 수 있다. Sample Using the Generated Client (Interacts with the V3 API) require 'vendor/autoload.php'; use Google\Cloud\Translate\V3\TranslationServiceClient; $translationClient = new TranslationServiceClient(); $content = ['one', 'two', 'three']; $targetLanguage = 'es'; $response = $translationClient->translateText( $content, $targetLanguage, TranslationServiceCl

Naver Blog

vscode 설치 및 원격개발 세팅하기

vscode를 이용해서 원격서버에 있는 소스를 편집해서 개발하기 위한 설정이다. 1. vscode 설치 - https://code.visualstudio.com/ 에서 다운로드 후 설치 2. sftp 설치 & 설정 - ctrl+shift+x (좌측 Extensions 아이콘 클릭) - SFTP(Dev. Natizyskunk) 검색 후 설치 - 윈도우에서 개발용 폴더 생성 후 vscode 좌측 explorer 에서 생성한 폴더 선택 - f1 클릭 후 sftp:config 검색해서 실행 (sftp.json configuration 파일 수정) { "name": "<SFTP 이름>", "context": "로컬 폴더에 저장시 구분할 폴더명", "host": "<서버 IP>", "protocol": "sftp", "port": 22, username": "유저명", “password” :“<서버 비밀번호>”, "remotePath": "<디렉토리 위치>", "uploadOnSave": t

Naver Blog

vscode 에서 settings.json 열기

1. ctrl + shift + p 를 누른다 2. open user setting (json) 을 입력하여 선택 3. 해당 파일이 열린다

Naver Blog

페이스북 릴스 업로드

facebook 에 릴스를 업로드하는 php 기본 소스 $rUrl = "https://graph.facebook.com/v19.0/{$page_id}/video_reels"; //업로드 세션 초기화 $postData = array('upload_phase'=>'start', 'access_token' => $page_access_token); $headers = array(); $rst = callCurl($rUrl, $headers, $postData); if($rst == 'fail') exit; //릴스 업로드 $video_id = $rst->video_id; $uUrl = $rst->upload_url; // 1에서 리턴받은 url로 전송 $video_url = "{$video_domain}{$m_file_link}/{$z_mov}"; $postData = array(); $headers = array("Authorization: OAuth {$page_access_token

Naver Blog

동영상 자막만들기 - CLOVA Speech, vtt

https://api-fin.ncloud-docs.com/release-20230525/docs/ai-application-service-clovaspeech 동영상의 음성을 인식하여 자막을 만들어주는 소스이다. CLOVA Speech PHP API 를 사용했으며 사용방법은 간단하다 동영상 파일의 URL을 CURL로 넘기면 리턴 URL로 자막파일이 JSON 파일로 출력된다. 1. CURL로 자막파일 요청 --------------------------------------------------------------- $object = (object)[ 'url' => '동영상 URL', 'language' => 'ko-KR', 'completion' => 'async', 'diarization.enable'=> false, 'resultToObs'=> false, 'callback'=> '자막을 받을 콜백 URL', 'format'=> 'JSON' ]; $ch = curl_init(

Naver Blog

동영상 자막만들기 - AssemblyAI

https://www.assemblyai.com/ 동영상의 음성을 인식하여 자막을 만들어주는 PHP 소스이다. 네이버보다 저렴한 가격에 서비스를 제공하고 있으며 성능도 아주 준수하게 나온다. 1. CURL로 자막파일 요청 --------------------------------------------------------------- $headers = array( "authorization: ".$assembly_key, // AssemblyAI API key "content-type: application/json" ); $data = array( "audio_url" => '동영상 URL', "language_code"=>"ko", 'webhook_url' => "CALLBACK URL" ); $transcript_endpoint = "https://api.assemblyai.com/v2/transcript"; $curl = curl_init($transcript_endpoin

Naver Blog

카톡 링크 공유시 썸네일 변경

카카오톡에서 URL 공유시 미리보기 썸네일 이미지가 뜨는데 만약 이 이미지를 수정할 경우 다시 URL을 공유해도 이미지는 바로 변경된 이미지로 바뀌지 않는다 이럴 경우 카카오톡 개발자 센터에 들어가 캐쉬 초기화를 해줘야한다. . https://developers.kakao.com/tool/debugger/sharing 도구>디버거 도구>공유 디버거 에 들어가 해당 URL을 넣고 캐시 초기화를 해주면 된다.

Naver Blog

RFC3339 날짜형식 맞추기

echo date(DATE_RFC3339, strtotime("2023-09-01 10:12:32")); echo date(DATE_RFC822, strtotime("2023-09-01 10:12:32"));

Naver Blog

이미지에 텍스트 넣기

이미지 중앙에 텍스트를 넣는 함수. 함수를 사용하면 지정한 이미지 중앙에 텍스트를 넣어 신규 파일로 생성해준다. $txt = "이미지 중앙에 텍스트 넣기"; $img = "./test1.jpg"; writeImgTxt($txt, $img, "./test2.jpg"); function writeImgTxt($str, $srcFile, $destFile){ $fFile = "./gulim.ttc"; $fontsize = 13; //이미지 사이즈 $iSize = getimagesize($srcFile); $iWidth = $iSize[0]; $iHeight = $iSize[1]; $im = imagecreatefromjpeg($srcFile); $fColor = imagecolorallocate($im, 0, 0, 0); //텍스트 가운데 정렬해서 쓰기 $strsize = imageftbbox($fontsize, 0, $fFile, $str, array("linespacing" => 1)

Naver Blog

[석촌동] 뼈해장국 맛집

Previous image Next image 오래된 노포집 감성의 뼈해장국 맛집으로 유명해서 전부터 한번 가야지 했는데 이제야 시간이 되어서 점심 시간에 혼자 방문했다. 일찍 방문해서인지 생각보다 한산했고 주문하자마자 거의 바로 나왔다. 개인적으로 진한국물의 들깨가 들어간 버전을 좋아하는데 여긴 완전히 기대한 맛과는 다르다 생각보다 자극적이지 않은 맑은 느낌이랄까 이제까지 먹어보지 못한 뼈해장국이었다. 고기도 실하고 맛도 좋았다. 가격은 만원으로 엄청 저렴해서 추천맛집니다.

Naver Blog

iframe 확대 / 축소하기

iframe 안의 내용을 css 를 이용하여 확대 / 축소하는 소스이다. 현재 소스는 70% (0.7) 로 표시하고 있으며 1.0은 100% 이다. <style> .zoomDiv{ border:1px solid #ccc; padding:1px; margin-top:1px; width:925px; height:630px; overflow:hidden; position:absolute; top: 0px; left:0px; } .zoomDiv iframe{ -ms-zoom: 0.7; -moz-transform: scale(0.7); -moz-transform-origin: 0 0; -o-transform: scale(0.7); -o-transform-origin: 0 0; -webkit-transform: scale(0.7); -webkit-transform-origin: 0 0; transform: scale(0.7); transform-origin: 0 0; border:1px sol

Naver Blog

트위터 v2 API 사용하기

갑자기 트위터에 자동피드가 되지 않아 확인해보니 내가 사용하는 v1.1 사용이 종료되었다고 한다. 그래서, 부랴부랴 라이브러리 불꽃검색 아래는 v2 을 사용하는 라이브러리들이다. 확인해야 할 사항은 php 버전이다. 본인 서버에 맞는 php 버전을 사용해야한다. (보통 7.4 버전 이상) . https://github.com/danieldevine/bird-elephant . https://github.com/fsyhrnl/twifer . https://github.com/noweh/twitter-api-v2-php . https://github.com/abraham/twitteroauth . https://github.com/utxo-one/twitter-ultimate-php . https://github.com/felixdorn/twitter-stream-api 내 서버는 php7.2 버전이라 twifer 를 사용했다. php 버전 업그레이드 작업도 해야겠네 ㅡㅡ include

Naver Blog

페이스북 API로 게시물 등록

https://developers.facebook.com/docs/pages/publishing/ 콘텐츠 게시 - Facebook 페이지 API - 문서 - Meta for Developers developers.facebook.com 페이스북 게시물 등록 링크 페이지의 메타정보로 미리보기가 등록된다 $url = "https://graph.facebook.com/{$page_id}/feed"; // api 링크 (페이스북) $params = array('message' => $text,'link' => $link,'access_token' => $page_access_token); // API 실행 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); curl_setopt($ch, CURLOPT_RETURNTRANSFER,

Naver Blog

ffmpeg 파일 합치기

ffmpeg -y -i "concat:sample1.mp3|sample1.mp3" -metadata title="test title" -metadata artist="artist name" -metadata album_artist="album artist" -c copy "result.mp3"

Naver Blog

문자열 마지막 가져오기 & 바꾸기

문자열의 마지막을 가져오기 . substr($str, -1) 문자열의 마지막을 바꾸기 . $str = substr($str , 0, -1); 문자열 마지막에 / 가 있으면 제거하기 . if(substr($str, -1)=="/") $str = substr($str , 0, -1);

Naver Blog

ffmpeg 으로 wma을 mp3로 변환

ffmpeg 을 사용하여 wma 파일을 mp3로 인코딩하는 명령어 ffmpeg -i ori.wma -vn -ar 44100 -ac 2 -ab 320 -f mp3 result.mp3

Naver Blog

[AWS S3 SDK] Bucket 파일 가져오기

bucket 에 있는 파일을 가져와 서버에 저장하는 소스이다. Key 는 bucket 에 있는 파일이고 SaveAs 에 저장될 서버정보를 설정하면 된다. $s3client = new Aws\S3\S3Client(['region' => 'us-west-2', 'version' => 'latest']); try { $s3client->getObject(array( 'Bucket' => $this->bucket, 'Key' => 'temp/202301031203399912_3.jpg', 'SaveAs' => "/folderName/202301031203399912_3.jpg" )); echo "Copied $file_name to $folder/$file_name-copy.\n"; } catch (Exception $exception) { echo "Failed to copy $file_name with error: " . $exception->getMessage(); exit("Plea

Naver Blog

몇일 차이나는지 계산하기

시작날짜에서 종료날짜까지 몇일이 지났는지 계산하는 소스 //시작일 $from = new DateTime( '20230109' ); //종료일 $to = new DateTime( '20230120' ); //몇일 지났는지 출력 echo $from->diff($to)->days;

Naver Blog

[AWS S3 SDK] Bucket 파일 사용자 컴퓨터로 다운로드

업로드 되어 있는 파일을 사용자 컴퓨터에 다운로드하는 소스 //Object Storage -> Sever로 다운로드 $result = $client->getObject(array( 'Bucket' => '버킷명', 'Key' => "test.jpg", 'SaveAs' => "/home/test.jpg" )); //Server -> 사용자 컴퓨터로 다운로드 header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header("Content-Disposition: attachment; filename=test.jpg"); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); ob_clea

Naver Blog

[AWS S3 SDK] bucket 파일 복사하기

버킷에 있는 파일을 복사하는 소스이다. CopySource 가 원본 파일이고 Key 가 복사될 파일 위치다. $s3client = new Aws\S3\S3Client(['region' => 'us-west-2', 'version' => 'latest']); try { $folder = "copied-folder"; $s3client->copyObject([ 'Bucket' => $bucket_name, 'CopySource' => "$bucket_name/$file_name", 'Key' => "$folder/$file_name-copy", ]); echo "Copied $file_name to $folder/$file_name-copy.\n"; } catch (Exception $exception) { echo "Failed to copy $file_name with error: " . $exception->getMessage(); exit("Please fix error with

Naver Blog

숫자, 문자, 특수문자 입력체크

비밀번호 입력 시 숫자, 문자, 특수문자 조합을 사용했는지 체크 //숫자, 문자, 특수문자 사용체크 var num = obj.value.search(/[0-9]/g); var eng = obj.value.search(/[a-z]/ig); var spe = obj.value.search(/[`~!@@#$%^&*|₩₩₩'₩";:₩/?]/gi); if(num < 0 || eng < 0 || spe < 0 ){ alert("숫자, 문자, 특수문자를 사용하세요."); }

Naver Blog

[속초] 오복식당 - 칼국수 맛집

Previous image Next image * 주문 메뉴 : 해물장칼국수, 오복보쌈, 비빔칼국수, 오복김밥 * 평점 : 4.5점 오랫만에 찾은 속초.... 최애하는 곳이어서 검색하면 나오는 맛집을 거의 가보았지만 장칼국수는 아이들과 가기에는 부담되는 메뉴여서 아직 가보지 못했다. 오복식당은 뭐~ 새로운 메뉴없나 검색하다가 얻어걸린 식당으로 아이들도 같이 먹을 수 있는 메뉴가 있어 바로 픽했다. 모든 메뉴 정갈하고 맛있어서 다음에 속초에 방문하면 다시 방문하고 싶은 메뉴이다. 아이들이 있는 집이라면 꼭 방문해보라고 추천해주고 싶다.

Naver Blog

[속초] 돈우마을 - 돼지갈비

Previous image Next image * 주문 메뉴 : 돼지갈비, 된장찌개, 물냉면 * 평점 : 4.6점 해산물보다 고기를 좋아하는 아이들 덕분에 한참을 검색하다 찾은 맛집이다. 청초호 옆에 있어서 호텔 체크아웃 후 호수 놀이터에서 아이들과 놀다가 배가 고플때쯤 방문했다. 가장 만족스러운 점은 내가 좋아하는 당귀가 있다는거 (이거 주는 집이 거의 없다 ㅡㅡ) 또한, 서울은 갈비를 시켰는데 목살을 주는 집이 많은데 여기는 100%로 갈비로 제공한다. 고기 잡내도 없고 만족스럽다. 단점은 내가 직접 구워야 해서 애들과 와이프는 편하게 먹을 수 있으나 나는 정신없다는 점... 내가 이래서 갈비집을 ... 이번 속초여행의 마지막 식사로 만족스러웠다. 여담으로 전날 당연히 중앙시장에 가서 먹거리를 샀는데 많이 와서 그런건지 맛이 변했는지 만석닭강정도 예전만 못한것 같고 특히, 서문갑부집에 나온 오징어 순대집이 유명하다고 해서 줄서서 (원래 줄같은거 안섬) 오징어순대, 순대 반반을 만

Naver Blog

배열을 자바스크립 변수에 넣기

PHP 의 배열 변수를 자바스크립트 변수에 넣어 사용하는 방법 <? $temp = arra('test1', 'test2'); ?> <script> var temp = jQuery.parseJSON('<?=json_encode($temp)?>'); alert(temp['0']); </script>

Naver Blog

curl http 기본인증

HTTP Basic Authentication curl 을 이용해 http basic 인증을 하는 소스 $authKey = base64_encode("id:key"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Basic {$authKey}" )); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $rst = curl_exec($ch); print_r($rst);

Naver Blog

toggle 함수 - 열고/닫기 처리

열고/닫기를 자동으로 처리해주는 함수이다. $('#test').toggle(); //일반적인 열고닫기 $('#test').slideToggle(); //슬라이드처리 $('#test').fadeToggle(); //fadein, fadeout 처리

Naver Blog

웹 데이터추출 - 리스틀리

사이트의 데이터를 추출해서 엑셀로 전달해주는 사이트이다. https://www.listly.io/ko 리스틀리 | 단숨에 웹데이터 추출! 무료 크롬확장프로그램으로 모든 웹사이트에서 데이터 수집하세요. 단숨에 웹 데이터를 엑셀 파일로 변환합니다. 깨끗하게 정리된 데이터로 여러분의 비즈니스를 성장시켜 드립니다. www.listly.io

Naver Blog

초를 시분초 포멧으로 변환

초를 H:i:s 포멧으로 변환하는 함수 echo gmdate("H:i:s", 62);

Naver Blog

ffmpeg 동영상 자르기

시작점과 끝나는 점을 지정하여 영상을 자르는 방법이다. -acodec copy : 원본 오디오 코덱 그대로 사용 -vcodec copy : 원본 동영상 코텍 그대로 사용 -ss : 시작시간 -to : 종료시간 //시작부터 1분30초까지 자르기 ffmpeg -i 입력동영상 -acodec copy -vcodec copy -ss 0 -to 90 출력영상 ffmpeg -i 입력동영상 -acodec copy -vcodec copy -ss 00:00:00 -to 00:01:30 출력영상

Naver Blog

이메일 입력형식 체크

입력한 이메일이 형식에 맞는지 체크 var f = document.wForm; if(f.email.value.match(/^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i)==null){ alert('이메일 형식에 맞지 않습니다. 다시 입력해주세요.'); f.email.focus(); return; }

Naver Blog

find ctime 명령어 옵션 (검색 후 삭제하기)

파일 생성 날짜가 3일이 지난 파일을 삭제하는 명령어 find ./ -ctime +2 -exec rm {} \ ; find /home -name '*.txt' -ctime +2 -exec rm {} \; * 일정기간 지난 파일 삭제 명령 - 1일 지난 파일 삭제 예 find [디렉토리] -ctime +0 -exec rm -f {} \; * 일정기간 지난 파일 삭제 명령 - 7일 지난 파일 삭제 예 find [디렉토리] -ctime +7 -exec rm -f {} \; * 수정한지 3일 이내 ( -mtime -3 ) 의 파일만 ( 백업할 때 유용 ) find . -mtime -3 -type f -ls * 수정한지 30분 이내 ( -mmin -30 ) 의 파일만 find . -mmin -30 -type -f -ls * 특정용량 이상되는 파일 찾기 - 10MB 이상 되는 파일 찾기 예 find [디렉토리] -size +1000k -exec ls -al {} \; * 생산된지 30일 이상

Naver Blog

SFTP 파일 업로드 속도에 대해서

리눅스에서 SFTP 서버에 개인키로 접속하여 파일업로드를 해봤는데 어떠한 방법을 써봐도 속도가 나오지 않아 구글링을 해보니 SFTP로 파일 전송을 할 경우 암호화를 하여 전송하기 때문에 CPU 성능을 많이 탄다고 했다. 그래서, 서버를 체크해봤더니 싱글 CPU ㅡㅡ; 듀얼 CPU 서버에서 테스트 해봤더니 싱글 CPU에서 300~400kbps 밖에 나오지 않던 속도가 1M 이상으로 높아졌다 이것 도 느리지만 여하튼 하드웨어을 타는 것 같다 참고...

Naver Blog

SSH2 ssh2_exec 사용하기

$pubKey = "id_rsa.pub"; $priKey = "id_rsa"; $conn = ssh2_connect('111.111.111.111', 1111); if (ssh2_auth_pubkey_file($conn, 'ID', $pubKey, $priKey)) { echo "Public Key Authentication Successful\n<br>"; } else { die('Public Key Authentication Failed'); exit; } $stream = ssh2_exec($conn, 'ls /'); $errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR); // Enable blocking for both streams stream_set_blocking($errorStream, true); stream_set_blocking($stream, true); // Whichever of the two belo

Naver Blog

[HTML] MARQUEE 텍스트 스크롤 시키기

<marquee> 텍스트 스크롤 </marquee> * direction = "right" : 오른쪽으로 스크롤 * direction = "up" : 위로 * direction = "down" : 아래로 * direction = "slide" : 왼쪽으로 오다 스탑 * scrollamount = "1" : 속도 (숫자가 작을수록 천천히 스크롤)

Naver Blog

동영상의 재생시간 구하기 (정보 구하기)

PHP 에서 동영상 재생시간 및 기타 정보를 가져오는 라이브러이이다. * http://getid3.sourceforge.net/ 에서 라이브러리 다운로드 DEMOS 폴더를 확인하면 예제 소스를 확인할 수 있다. 아래는 재생시간을 확인하는 소스이다. require_once('./getid3/getid3.php'); $getID3 = new getID3; $file = $getID3->analyze("TEST.mp4"); echo "- Duration: {$file['playtime_string']}<br> - Dimensions: {$file['video']['resolution_x']}<br> - wide by {$file['video']['resolution_y']}<br> - tall Filesize: {$file['filesize']}bytes";

Naver Blog

레이어 내에서 onmouseover onmouseout 문제

레이어로 드롭다운 메뉴를 만들때 의도했던데로 mouseover, mouseout 이 동작하지 않을 경우가 있다 가령 드롭다운 메뉴에서 마우스가 나왔을때 메뉴가 사라져야 하는데 엉뚱한 지점에서 사라지는 경우다 해결방법은 마우스가 메뉴 레이어위에 오버되었는지를 기억하는 변수를 두고 마우스가 아웃 되었을때 바로 레이어를 사라지게 하는것이 아니라 setInterval 함수를 사용하여 x초마다 마우스 상태 변수를 체크하여 마우스가 아웃된 상태이면 레이어를 사라지게 하는 것이다. 스크립트 <script type="text/javascript" src="/js/jquery.js"></script> <script type="text/javascript"> var mouseStatus = false; $(document).ready(function () { $('#img_site').mouseover(viewSiteMenu); $('#img_site').mouseout( function () { m

Naver Blog

태그안의 값 가져오기

<a href="#" id="afile" data-fileuid="test1">test</a> 위와 같은 태그가 있을 경우 data-fileuid 의 값을 가져오려고 할때 아래와 같이 하면된다. document.getElementById('afile').getAttribute('data-fileuid')

Naver Blog

getElementsByName

getElementsByName 는 같은 name 속송 값을 가진 개체의 콜렉션을 임의로 만들 수 있게 하는 매서드이다. //개수 --------------------------------------------------------- document.getElementsByName("aFile").length : name 이 aFile 인 개체의 개수 //속성값 가져오기 ------------------------------------------------ <a name="test" uid="test1">test1</a> <a name="test" uid="test2">test2</a> 위의 태그에서 uid 값 가져오기 for(var i=0;i<document.getElementsByName("test").length;i++){ alert(document.getElementsByName("test")[i].getAttribute('uid')); }

Naver Blog

getElementById

//객체 삭제 - test 안에 a 태그를 삭제---------------------------------- <span id="test"> <a id="test_1">test</a> </span> var temp = document.getElementById('test'); temp.removeChild(document.getElementById('test_1'));

Naver Blog

마지막 insert 쿼리의 auto_increment id 값 가져오기

게시판의 글을 등록했을 경우 자동으로 증가하는 게시글의 id 값을 가져와야 하는 경우가 있는데 이때 아래의 명령어를 사용하면 된다. (동일 세션) * select last_insert_id()

Naver Blog

select 태그 초기화, 값추가(option)

<select name="hcd"> <option value="" >소분류</option> </select> 위와 같은 select 태그가 있을 경우 * 초기화 : document.form1.hcd.length = 0; * 값추가 : document.form1.hcd.add(new Option('이름','값'));

Naver Blog

엑셀파일(xls, xlsx) 읽기

http://phpexcel.codeplex.com 에서 라이브러리를 다운로드 아래는 phpexcel 을 이용한 예제이다. require_once "../_prog/PHPExcel.php"; $objPHPExcel = new PHPExcel(); require_once "../_prog/PHPExcel/IOFactory.php"; $filename = "{$_CFG['tmp_path']}201509011346053716.xlsx"; try { $objReader = PHPExcel_IOFactory::createReaderForFile($filename); $objReader->setReadDataOnly(true); $objExcel = $objReader->load($filename); // 첫번째 시트를 선택 $objExcel->setActiveSheetIndex(0); $objWorksheet = $objExcel->getActiveSheet(); $rowIterator =

Naver Blog

[YOUTUBE DATA API] 유튜브 재생목록 관리 (생성, 추가, 삭제)

일단 기본적으로 REFRESH TOKEN으로 작업을 얻어야 한다. 이는 다른 게시물을 참고 간단한 소스를 위해 try catch 문은 사용하지 않음 //재생목록 생성 include 'google/src/Google/Client.php'; include 'google/src/Google/Service/YouTube.php'; $client = new Google_Client(); $client->setClientId($clientID); $client->setClientSecret($secret); $client->setScopes('https://www.googleapis.com/auth/youtube'); $client->refreshToken($token); $youtube = new Google_Service_YouTube($client); $playlistSnippet = new Google_Service_YouTube_PlaylistSnippet(); $playlistSni

Naver Blog

생년월일로 연령대별 회원수 쿼리

생년월일을 이용하여 10~60대까지 연령대별로 몇명인지 쿼리하기 (BIRTH=YYYYMMDD) 1. select sum(if(date_format(now(),'%Y')-substring(BIRTH,1,4) between 10 and 19 , 1, 0)) as age_10, sum(if(date_format(now(),'%Y')-substring(BIRTH,1,4) between 20 and 29 , 1, 0)) as age_20, sum(if(date_format(now(),'%Y')-substring(BIRTH,1,4) between 30 and 39 , 1, 0)) as age_30, sum(if(date_format(now(),'%Y')-substring(BIRTH,1,4) between 40 and 49 , 1, 0)) as age_40, sum(if(date_format(now(),'%Y')-substring(BIRTH,1,4) between 50 and 59 , 1, 0)

Naver Blog

DATEPICKER 한글화

신규버전 다운로드 및 데모는 아래의 사이트에 들어가면 된다. * http://jqueryui.com/datepicker/ <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <script src="../_js/jquery-1.9.1.min.js"></script> <link href="../calendar/jquery-ui.css" rel="stylesheet" /> <script src="../calendar/jquery-ui.js"></script> <script> $(function() { $.datepicker.regional['ko'] = { closeText: '닫기', prevText: '이전달', nextText: '다음달', currentText: '오늘', monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(J

Naver Blog

특수문자제거 - preg_replace

* preg_replace("/[^A-Za-z0-9가-힣]/i","",$temp); * preg_replace("/[ #\&\+\-%@=\/\\\:;,\.'\"\^`~\_|\!\?\*$#<>()\[\]\{\}]/i", "", $temp);

Naver Blog

라디오버튼 선택체크

<input name="eventSort" type="radio" value="0">객관식 <input name="eventSort" type="radio" value="1">주관식</td> 위와 같이 2개의 라디오 버튼이 있을 경우 아래와 같이 체크 document.sForm.eventSort[0].checked - 객관식이 선택되어 있으면 true 를 리턴

Naver Blog

CSV 파일 읽기

CSV 파일의 내용을 읽어오는 기본 소스로 필요에 따라 내용을 추가해서 사용하면 된다 $data = file("member.csv"); foreach($data as $v){ $member = explode(",",$v); if($member[0]=="") break; $id = $member[1]; $name = $member[2]; $pw = $member[3]; }

1 2 3 4 5 6