골드팁]]> <![CDATA[happycgi > 골드팁]]> 골드팁]]> 골드팁 http://happycgi.com/community/ 제공, All rights reserved.]]> Fri, 24 Feb 2017 12:45:35 Fri, 24 Feb 2017 12:45:35 <![CDATA[모바일 및 리스트형 템플릿 파일에 적용하면 유용한 ellipsis 소스]]>

위와같이 특정 소스내에 폰트 및 이미지등이 잘리더라도 ... 으로 표시되거나 모바일마다 변경되는 다양한 브라우저등에서

아주 효과좋은 리스트 화면을 구현할 수 있습니다.

방법은 아주 간단합니다.

먼저 css 상에서 ellipsis 효과를 줄 text-overflow:ellipsis 소스를 style 을 적용합니다.


<style>
.ellip {word-break:break-all; text-overflow-mode:ellipsis-word; text-overflow-mode:ellipsis; text-overflow-mode:clip; text-overflow:ellipsis; overflow:hidden; white-space:nowrap;}
</style>


주의하셔야 할 부분으론 word-break:break-all 을 사용하지 않으실경우 폰트영역의 소스를 문자열로 인식하지 않아

'...' 이란 문자열이 출력되지 않사오니 꼭 기입해주시기 바랍니다.



이후 반영할 리스트 형태의 템플릿 항목에 아래와 같이 반영합니다.

샘플예제는 table 영역에 적용된 예제로 어떠한 브라우저에서도 크로싱이 훌륭하게 반영되며, 소스도 비교적 간단하여

초보자들도 사용하시기 용의하도록 짜여져있습니다.

이때 반드시 가장 바깥에 쌓여져있는 table 영역에 style="table-layout:fixed;" 를 선언해주셔야 합니다.


<table style="width:100%; table-layout:fixed;">
<tr>
<td class="ellip">하늘아래신짱 가라사대 긴글을 입력하여주시기 바랍니다.하늘아래신짱 가라사대 긴글을 입력하여주시기 바랍니다.하늘아래신짱 가라사대 긴글을 입력하여주시기 바랍니다.하늘아래신짱 가라사대 긴글을 입력하여주시기 바랍니다.</td>
</tr>
</table>


위와같은 상태로 만들어주셔야 하며, <table> 안에 <table> 이 있는 상태라면 반영되지 않사오니 참고하시기 바랍니다.





즐거운 인터넷, 웹활용법으로 다양한 효과를 구축해보시기 바랍니다.^^

감사합니다.
]]>
Wed, 14 Aug 2013 16:40:34
<![CDATA[펄 강좌 진도 계획표]]> Mon, 20 Nov 2000 23:48:22 <![CDATA[1. Perl DBI 설치하기]]>
우선 perl 와 mysql의 연동의 개념적인 것 부터 설명을 하겠습니다.
http://www.happycgi.com/index.cgi?action=main&category=데이타베이스_창고/MySQL/MYSQL_자료/APIs/PERL_DBI

위 URL로 가보면 4개의 파일이 올라와 있습니다.
이는 DBI란 것으로 perl이 준 sql 명령어을 sql로 보내주는 역활을 합니다.
당연히 DBI 가 깔려있지 않으면 perl과 sql은 서로 연동이 될수 없겠죠?
(모든 언어는 거의 같은 형태를 취합니다. 방법상으로 약간씩 다르죠)

DBI 설치는 서버의 root가 해야 하며 자신이 서버를 운영하고 있지 않을
경우에는 담당서버관리자님께 연락을 해서 펄 DBI 설치를 해달라고
요청을 하셔야 합니다.
만약 서버관리자님께서 "그게 뭐예요?"  하신다면
호스팅 회사를 바꾸시는게 낫겠습니다. ^^;;;

우선 네개의 파일을 다운 받습니다.
http://search.cpan.org 에서 받으시면 되고, 최신버젼을 받으십시오.
서버의 /tmp 디렉토리에 4개의 파일을 올립니다.
텔넷으로 접속한후 루트로 재로긴합니다.
설치 순서는
[quote]1. Data-ShowTable-3.3.tar.gz
2. Data-Dumper-2.101.tar.gz
3. DBI-1.13.tar.gz
4. Msql-Mysql-modules-1.2209.tar.gz [/quote]
로 하면 됩니다.

각각의 설치 법은 동일하므로 한번만 설치법을 알려드리겠습니다.
나머지는 같은 방법으로 하시면 됩니다.

[quote]1.Data-ShowTable-3.3.tar.gz 의 압축을 풉니다.
텔넷> tar xvfz Data-ShowTable-3.3.tar.gz

2. 압축이 풀리면서 디렉토리가 새로 생깁니다.
3. 생성된 디렉토리로 들어갑니다.
4. perl Makefile.PL 이라고 입력
5. make 라고 입력
6. make test 라고 입력
7. make install 라고 입력
[/quote]
같은 방법으로 나머지 3개의 모듈도 설치를 합니다.

DBI 가 설치되었는지 샘플 cgi로 테스트를 해볼까요?
아래는 test.cgi 입니다.
복사하셔서 테스트해보세요.

우선 mysql 에 아이디를 test 패스를 test로 가정을 하고
sql DB 이름을 testdb
그리고 테이블 명은 first
컬럼은 name varchar(20), email varchar(20) 으로 가정합니다.
값들은

윤영웅|webmaster@happycgi.com
손님 |guest@test.com

이란 두개의 값이 있다고 가정을 하구요.

참고로 sql 문법을 모르면 연동을 불가능하겠죠. ^^

아래는 샘플 cgi입니다. 보면서 설명을 하죠.

[code]#!/usr/bin/perl
#########################################################
use DBI; #DBI란 모듈을 사용한다고 선언합니다.
$database = "testdb";
$hostname = "localhost";
$dsn = "DBI:mysql:database=$database;host=$hostname";
$user = "test";
$pw = "test";
$dbh = DBI->connect("$dsn", "$user", "$pw");
#########################################################
print "content-type:text/html\n\n";

#DB 커넥팅을 시도합니다.
#이름이 공백이 아닌것들을 불러냅니다.

$sth = $dbh->prepare("select * from first where name is not null or die print "$DBI::errsrt";
$sth->execute();
#@rows = $sth->fetchrow_array 란 $sth 에서 받은 값들을
#배열로 받아 보겠다는 말입니다.
#현재 컬럼이 두개니까 배열 0번과 1번을 각각
#$name 이란 변수와 $email 이란 변수로 지정을 하고
#출력을 합니다.

while (@rows = $sth->fetchrow_array) {
$name = $rows[0];
$email = $rows[1];
print "이름 : $name 이메일 : $email
\n";
}
[/code]
이름과 이메일이 정상적으로 출력이 되면 DBI가 잘 설치 된것입니다.
만약 어떤 오류 메세지를 보인다면 DBI에서 출력되는 에러 메세지
입니다.
메세지를 잘 보시고 어떻게 에러가 났는지 파악을 한후 다시
실행을 하셔야 합니다.
이번 첫번째 강좌는 이렇게 마칩니다.

좋은 하루되세요.
날씨 요즘 무지 춥군요. ^^

Copyright 1997-2003 HAPPYCGI All Rights Reserved.
]]>
Tue, 21 Nov 2000 00:00:27
<![CDATA[1-1. perl DBI ,DBD(오라클) 셋팅하기]]> Mon, 27 Nov 2000 05:37:30 <![CDATA[pws에서 세팔보드 설치하기]]> Sun, 14 Jan 2001 07:21:13 <![CDATA[NT에서 blat 사용하기]]> Sun, 14 Jan 2001 07:47:01 <![CDATA[윈도우 2000서버에서 smtp를 이용한 메일 날리기 (세팔보드예제)]]> Sun, 14 Jan 2001 07:49:34 <![CDATA[텍스트파일 삭제팁]]> Sun, 18 Mar 2001 17:30:45 <![CDATA[백그라운드로의 실행]]> Sun, 25 Mar 2001 14:57:47 <![CDATA[이메일 포워딩]]> Tue, 3 Apr 2001 02:13:39 <![CDATA[<b>태그로 둘러쌓인 문자열 뽑기]]> Thu, 5 Apr 2001 13:46:24 <![CDATA[스트링에서 특정문자 갯수 알아내기]]> 0의 갯수를 세는 방법이죠.

#!/usr/bin/perl

$i = "1101010001";

$i =~ s/[^0]//g; <--0 이외에는 전부 없애 버린다.

$len = length($i);

print $len;

음...잘 되는 군요....^^]]> Thu, 5 Apr 2001 15:56:31 <![CDATA[입력받은 값이 숫자인지 문자인지 구분]]> if( $string = ~ /\d{1,}/ or $string = ~ /d{1,}\.d{1,}/){
  print "숫자입니다 <p>\n";
}
그런데.. 하고나면... string값이 바뀌더군요. 그러니까... 이걸 다른 변수에 넣어서.. 그 변수로.. 값을 알아보는게 좋을 것 같습니다.

발췌 : http://www.perlmania.or.kr
]]>
Thu, 5 Apr 2001 15:57:57
<![CDATA[숫자에서 정수만 구하기]]>
만약, $a = int (3.141592); 라고 하였을때, $a에는

정수 부분인 '3' 만 취하게 됩니다.

perl은 문자와 숫자를 구별하지 않기 때문에 숫자가 들어있는 문자열도

가능합니다. $a = int ("3.141592"); 도 맞습니다.

ex)

5.92 => 5
4.84 => 4
2.7523 => 2
..
..

자료출처 : http://www.perlmania.or.kr]]>
Thu, 5 Apr 2001 16:27:13
<![CDATA[한글 자르기]]>       my $string = shift;
      my $len = shift;
      my $cut = 0;

      while($len != 0) {
              if( ord(substr($string, $cut, 1) ) >= 128 ) {
                      $cut += 2; #korean char & 
              }
              else {
                      $cut++;
              }
              $len--;
              last if ($len == 0);
      }
      return substr($string, 0, $cut);
}

#사용법
$a = "12펄34마56니78아";
print CutString($a,7);



]]>
Thu, 5 Apr 2001 17:07:06
<![CDATA[우편번호찾기에서 글쓰기 입력 강제로 막기]]> Thu, 5 Apr 2001 17:09:03 <![CDATA[[html] 테이블을 이쁘게, input 박스를 이쁘게]]> 코딩하실때 디자인도 신경많이 쓰이시죠 ^^
<table> 대신에 아래 태그를 써보세요.
좀더 이뻐질겁니다.

<table cellspacing=0 cellpadding=2 bordercolorlight="black" bordercolordark="#FFFFFF" bgcolor="#FFFFFF" border=1 >

INPUT 박스를 이쁘게 해주는 스타일 쉬트입니다.
아래를 참고하세요.

<input type="text" name="phone" size=30 value="" style="border: 1 dashed"  style='font-size: 9pt'>
]]>
Thu, 5 Apr 2001 17:13:21
<![CDATA[[자바스크립트] html 출력대신 자바스크립트로]]> 글등록후나 수정후 혹은 삭제등에서 출력할때 간단한 자바스크립트로
해결하는 방법입니다.
간단하지만 유용할겁니다.
제가 즐겨 쓰는 방법이죠.

print "<script>\n window.alert('사용자 접속을 하지 않으면 접근할 수 없습니다.')\n history.go(-1)\n</script>\n";

--> 위 스크립트는 이전으로 돌아가도록


print "<script>\n window.alert('로그오프되셨습니다')\n location = \"$admin_url\";  </script>\n";

--> 위 스크립트는 $admin_url이 지정한 위치로 돌아가도록

]]>
Thu, 5 Apr 2001 17:15:53
<![CDATA[[자바스크립트] 새창 자동으로 꺼지기]]> 일반적으로 새창을 띄우고 나서는 창닫기 혹은 자바스크립트의 alert를
이용해서 창을 끄는데 자바스크립트를 이용해서
일정시간후 자동으로 꺼지는 방법을 알아봅니다.
(사실 알아볼것도 없죠. 그냥 복사해서 쓰시면 됩니다.)

새로 뜬창 중 끄고자 하는 루틴에 아래를 넣으세요.
<script>setTimeout ('window.close ()', 1000)</script>

좋은 하루되세요.
]]>
Fri, 6 Apr 2001 06:04:05
<![CDATA[[html] textarea 브라우져별 크기 맞추기]]> 늘 문제꺼리였죠?
textarea 크기가 브라우져 별로 다르게 출력되는것 때문에 말이죠.
(사실 이 포럼도 틀리게 나올겁니다. ^^v)

아래 태그를 유심히 보세요.
<textarea name="type" cols="25" rows="12" style="border: 1 dashed"  style='font-size: 9pt' style='width:270px;'>

cols=25 는 네스케이프에서 따릅니다.
style='width:270px;' 는 익스플로러에서 따르죠.

브라우져별 textarea 크기 조절 끝 ^^
]]>
Fri, 6 Apr 2001 06:24:19
<![CDATA[인증된 사용자의 ID 알기]]> 한동안 꾸준히 팁을 올리고 있습니다. ^^
아파치에 아이디/패스워드 입력하라고 나오시는거 아시죠.
일반적으로 사용자 인증이라고 부르는데요.
이 인증을 통과한 사람의 아이디를 펄의 환경변수로 알아봅니다.

$ENV{'REMOTE_USER'}

무지 쉽죠? ^^
]]>
Sat, 7 Apr 2001 23:14:41
<![CDATA[배열로 파일 읽기]]> 가끔 파일로 프로그램을 짜다 보면 특정 파일을 배열에 담아서
어떤 확인이나 행동을 해야 할때가 있는데요.
그때 편하게 배열로 넣어서 체크를 해봅니다.

open (B,"파일명");
@allfile = <B>;
close B;

foreach $list (@allfile) {
print "$list";
}

두번째 방법은 $_ 를 이용해서 출력 혹은 작업^^ 하는 방법입니다.
open (A,"파일명");
while (<A>) {
print "$_";
}
close A;

좋은 하루되세요.

]]>
Sun, 8 Apr 2001 01:50:51
<![CDATA[PERL 소수점 자리별 반올림]]> 결과 값을 $test 라고 합니다.
$test = int ((abs($test)/1) + 0.5)*1;
하면 됩니다.
소수 한자리로 할때는
$test = int ((abs($test)/0.1) + 0.5)*0.1;
라고 하면 됩니다.
소스 둘째 자리는 마찬가지로
$test = int ((abs($test)/0.01) + 0.5)*0.01;
하면 되겠죠 ^^
감사합니다.
좋은 하루되세요 ]]>
Sun, 8 Apr 2001 02:04:25
<![CDATA[email 존재 유무 체크 함수]]> if (!eregi("^[a-z0-9]+([\.%!][_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$", $email)) {
$return = false;
} else {
list($user, $host) = explode("@", $email);
if (checkdnsrr($host, "MX") or checkdnsrr($host, "A")) {
$return = true;
} else {
$return = false;
}
}
return $return;
}


자료출처 : http://www.tegi.org

]]>
Tue, 10 Apr 2001 03:50:46
<![CDATA[html 형식으로 메일 보내기]]> 처음 펄을 배우시는 분들이 많이 찾으실 예제입니다.^^
아래 글을 참고하세요.

http://www.happycgi.com/forum/forum_detail.cgi?thread=6000 ]]>
Tue, 10 Apr 2001 06:56:32
<![CDATA[[자바스크립트]한글만 인식하는 자바스크립트]]>





익스플로러용 입니다. 네스케이프는 아직 체크 하지 않았습니다.

아래의 텍스트 입력상자에 체크할 글자를 입력하고 엔터키를 누르십시오.

자음이나 모음 하나만 입력하면 한글이 아닌 것으로 인식합니다.

(예 : ㄱ, ㄴ, ㅏ, ㅓ 등등)


* 한글자 뿐 아니라 문자열도 테스트 가능합니다.

* 문자열 중에 자음, 모음, 빈칸 등이 한글자라도 섞여 있으면 한글이 아닌 것으로 체크합니다.





]]>
Fri, 13 Apr 2001 07:03:43
<![CDATA[업데이트 날짜 보여주기]]>
어느 홈페이지에 가보면 최근 업데이트 날짜를 적어주는 분들이 계시죠.

스크립트를 이용하는 분들도 계시겠지만, 대부분은 직접 적어주는 것으로 알고 있습니다. (잘못 알았나? 긁적긁적...)

PHP를 이용해 이를 구현해볼까요?

다음의 한줄을 html 문서 내에 업데이트 날짜를 출력해야 할 부분에 추가하기만 하면 끝입니다.

<? $file = stat(basename($PHP_SELF)); echo date("Y-m-d (h:i:s a)", $file[9]); ?>

너무 싱겁죠...?

stat() 함수는 파일에 대한 여러 정보를 가져오는 함수입니다. 위에서 보면 $file[9]라고 한게 보이죠? 결과 값이 배열이기 때문에 그렇습니다. 팁이니까 다른 설명은 생략하고 저기 쓰인 9번째 위치의 값은 마지막으로 수정된 날짜값이 들어있습니다.

아! 그냥 날짜가 아니고 timestamp라는 값이죠. 숫자가 쫌 커요... ^^; 그냥 그런게 있다 하구 넘어가죠.. (복잡한건 아니고... 1970년인가? 그날부터 지금까지의 지나간 시간을 초로 나타낸 값입니다. 켁, 열나 크겠죠? ...거봐...그래서 그냥 넘어가자니깐... -_-;;;)

[^0^ 이 timestamp를 가지고 여러 일을 할 수 있죠...]

흠흠...

date() 함수는 다들 잘 아시죠? 대부분 날짜 시간을 출력하는데 쓰죠. echo date("Y-m-d"); 라구 하면 현재의 년-월-일이 출력되잖아요. 요넘에 timestamp를 이용하면, 그 timestamp에 해당하는 지정한 형식의 결과값을 얻을 수 있어요. 켁... 문장이 꼬였다... (다들 이해하시져? 켁... 돌날아온당... @.@)

$PHP_SELF는 현재 수행중인 파일 자기 자신을 뜻해요... 아무곳에나 저 문장 넣으면 돌아가도록 이렇게 했죠... 바로 파일명을 적어도 되거든요~ ^^;

echo $PHP_SELF; 해서 출력해보면 알겠지만 경로 포함해 파일명이 나타나기 때문에 여기서 basename()을 통해 파일명만 쏙 뽑아낸 거에요. 반대로 dirname() 함수는 디렉토리명만 쏙 뽑아내죠. ^^; 켜켜...

다시 함 살펴볼까엽? 코드를 올려놓고,

<? $file = stat(basename($PHP_SELF)); echo date("Y-m-d (h:i:s a)", $file[9]); ?>

여기서 처음 코드,
$file = stat(basename($PHP_SELF));

순서대로 보세요. $PHP_SELF는 현재 실행중인 파일이고 (경로포함), 이것을 basename 함수를 이용해 파일명만 뽑아서 stat 함수를 이용해 파일에 대한 정보를 $file에 저장합니다. [배열변수가 되죠]

두번째 코드,
echo date("Y-m-d (h:i:s a)", $file[9]);

$file[9]에 저장된 timestamp를 이용해 년-월-일 (시:분:초 am/pm) 형식으로 출력을 합니다. 넘 간단하게 끝났죠? ]]>
Fri, 13 Apr 2001 07:04:58
<![CDATA[정수,반올림,올림]]> 반올림 또는 무조건 올림을 하는 경우가 있다

1. 정수

$test = intval(3.5);

하면 $test = 3 으로 정수만을 취한다

2. 반올림 함수

$test = round(3.5);
하면 $test=4 로 반올림 수를 반환한다.

3. 올림함수

$test = ceil(3.4);

$test = 4; 의 값을 반환한다.

자료출처 : http://ychat.sarang.net/]]>
Fri, 13 Apr 2001 07:05:42
<![CDATA[[기초강좌] LWP 모듈 설치하기]]> 참으로 오랜만에 강좌란에 글을 올립니다.
이번에 설치해볼 모듈은 LWP 모듈이란 것인데요.
그 사용범위가 방대하고 유용하게 사용할 곳이 많아 소개해드립니다.
(로봇,ftp.pop3,서버간의 교신 ...)
LWP의 최신버젼과 사용법은 http://www.linpro.no/lwp/ 참고하시기
바랍니다.

설치는 서버의 root로 설치를 해야 합니다.
펄 버젼은 5.004 이후 버젼에서 설치해야 합니다.
아래 파일들을 다운로드 받습니다.

http://www.perl.com/CPAN-local/modules/by-module/LWP/libwww-perl-5.53.tar.gz
http://www.perl.com/CPAN-local/modules/by-module/URI/URI-1.12.tar.gz
http://www.perl.com/CPAN-local/modules/by-module/MIME/MIME-Base64-2.12.tar.gz
http://www.perl.com/CPAN-local/modules/by-module/HTML/HTML-Parser-3.23.tar.gz
http://www.perl.com/CPAN-local/modules/by-module/Digest/Digest-MD5-2.13.tar.gz
http://www.cpan.org/authors/id/GBARR/Bundle-libnet-1.00.tar.gz

다운 받으신 파일을 서버에 적당한 임시디렉토리에 올려둡니다.
압축을 해제하는 순서는 아래와 같습니다.

  MIME-Base64
  URI
  HTML-Parser
  libnet
  Digest-MD5
  LWP 모듈

모든 설치법은 아래와 동일합니다.

1. tar xvfz 파일명
2. cd 새로생성된 디렉토리
3. perl Makefile.PL
4. make
5. make test
6. make install

html parser 을 설치할때 HTML/Tagset.pm 가 에러가 보통 납니다.
무시하시고 넘어가셔도 되구요.
모듈을 찾아서 깔끔히 설치하셔도 좋습니다.
lwp를 설치할때도  Net/FTP.pm 없다고 에러가 납니다.
무시하시고 넘어가셔도 되구요. 모듈을 찾아서 설치해도 좋죠.

설치이후 어떻게 사용하는지 다음 강좌에서 한번 알아봅시다.
첨부된 파일은 위에서 언급된 모든 파일을 압축한것입니다.
좋은 하루되세요.








]]>
Thu, 3 May 2001 10:34:07
<![CDATA[[자바스크립트] 특정시간이후 페이지점프하기]]>

[code]<head><META HTTP-EQUIV=refresh CONTENT=5;URL=http://www.happycgi.com></head> [/code]


위 태그를 html에 넣으면 (혹은 CGI) 5초이후 http://www.happycgi.com
으로 이동합니다.

]]>
Sat, 12 May 2001 21:20:12