유돌이

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Notice

2009. 3. 21. 11:26 PHP/Java Script/html

예 1. strip_tags() 예제

<?php
$text
=
'
<p>테스트 문단.</p>
<!-- 주석 -->
다른 텍스트'
;

echo
strip_tags($text
);

echo
"\n\n--------\n"
;

// <p>를 허용.
echo strip_tags($text, '<p>'
);
?>

위 예제의 출력은:

테스트 문단.

다른 텍스트

--------

<p>테스트 문단.</p>

다른 텍스트

posted by 유돌이
2009. 3. 21. 11:26 PHP/Java Script/html
*PHP 에서 자주 쓰이는 그리고 유용한 문자열 처리 함수*

- nl2br() : 문자열에 있는 개행문자 앞에 <br/>태그를 삽입한다.
- echo() : 문자열을 출력한다.
- print() : 문자열을 출력한다.
- sscanf() : 지정한 형식에 따라 문자열을 파싱하여 변수의 값을 설정한다.
- explode() : 문자열을 구분자로 분할한다.
- strcmp() : 두 개의 문자열을 비교한다.
- strcasecmp() : 두 개의 문자열을 비교하되 대소문자를 구분하지 않는다.
- strncmp() : 두 개의 문자열을 지정한 길이까지만 비교한다.
- strlen() : 문자열의 길이를 반환한다.
- strtolower() : 문자열을 소문자로 변경한다.
- strtoupper() : 문자열을 대문자로 변경한다.
- ucfirst() : 문자열의 첫 글자를 대문자로 변경한다.
- ucwords() : 인자로 전달받은 문자열에 있는 모든 단어의 첫 글자를 대문자로 변경한다.
- trim() : 문자열의 앞뒤에 있는 공백문자를 제거한다.
- ltrim() : 문자열의 엪에 있는 공백문자를 제거한다.
- ord() : 문자의 ASCll코드 값을 반환한다.
- chr() : ASCll코드 값에 해당하는 문자를 반환한다.
- strip_tags() : 문자열에서 HTML 태그나 PHP태그를 모두 제거한다.
- crypt() : 인자로 전달받은 문자열을 암호화 한다.
- htmlspecialchars() : 특수 문자를 HTML엔티티로 변환한다.
- htmlentities() : 변환 가능한 모든 특수 문자를 HTML 엔티티로 변환한다. 
posted by 유돌이
2009. 3. 21. 11:25 PHP/Java Script/html
1. charset의 의미
charset = "coded character set"
charset은 "컴퓨터에서 문자를 표현하기 위해, 각 문자를 정수값에 대응시켜 놓은 체계"를 의미합니다.

예를 들어, euc-kr charset이라면, 영숫자와 한글 그리고 일부 특수문자와 한자들을 정수값에 대응해 놓은 것입니다.
euc-kr환경에서 한글을 입력하면, 컴퓨터는 euc-kr charset에서 각 문자별로 지정한 정수값을 쓰게 됩니다.

2. charset이 달라진다면..
각 charset별로, 표현하고자하는 문자와 대응하는 정수값이 달라질 수 있습니다.
예를들어 euc-kr은 태국문자를 위한 정수값을 정의하지 않았으므로, 태국문자는 표현하거나 입력할 수 없습니다.

그리고, euc-kr charset에 맞춰 한글로 어떤 내용을 작성했는데,
이것을 iso-8859-1 charset 환경에서 열어본다면, 한글 대신에 엉뚱한 특수문자쌍들을 보게 될 것입니다.

이런 문제 때문에, 문자 데이터를 주고 받을 때는 서로 간에 charset을 일치시킬 필요가 있습니다. 그렇지
않으면, 원래 생각했는 내용 대신 "깨진 문자들"을 보게 될테니까요.
( 가끔 charset은 일치되었는데, 사용하는 폰트에 대응하는 문자가 없어서 깨져보이는 경우도 있습니다. )

서블릿 코딩시에, content type의 일부로 charset을 명시하는 것은 웹 브라우저에게 사용하는 charset을
알려주어 오해하지 않게 하기 위해서입니다.

3. 한글을 표현할 수 있는 charset
한글을 표현할 수 있도록 설계된 charset은 euc-kr외에도, ksc5601, cp933, cp949 등등 꽤 많습니다.
그리고, 전세계 모든 문자를 표현할 목적으로 설계된 unicode역시 한글을 지원합니다.
그러나, 한글을 지원하는 charset을 사용하더라도, 문서를 만들 때 사용한 charset과 읽을 때 사용하는
charset이 다르다면, 제대로 그 내용을 볼 수 없을 것입니다. 이 경우에는 따로 conversion로직을 사용하여
원하는 charset에 맞춰 데이터를 가공해야 할 것입니다.
( euc-kr, ksc5601 같은 경우는 거의 차이가 없어 호환가능합니다. )

3. 영문 OS에서 한글 표현
charset에 맞추어 문자데이터를 처리하는 것은 OS나 DBMS, 미들웨어 등 플랫폼이므로, 플랫폼에서
제공해주지 않는 charset을 사용할 수는 없습니다.
다행히도, 최근의 플랫폼 SW들은 다양한 charset 지원을 포함하고 있습니다. 만약 어떤 OS가 euc-kr모드로
작동하고 있다면, 설령 영문OS라 하더라도, 한글 처리에 문제가 없다고 볼 수 있습니다.
문제가 있다면 euc-kr모드로 작동하고 있는 것이 아니겠죠.

저 같은 경우, 영문 OS를 설치하고, 그 위에서 한글을 사용해 본 적이 있습니다.

4. encoding
charset과 비슷한 의미로 사용하는 단어로 encoding이 있습니다.
charset이 문자에 대해 정수값을 지정한 것이라면,
encoding은 "문자를 표현하는 정수값을 어떤 bit배열로 표현할 것"인지를 의미합니다.

대부분의 경우, charset과 encoding을 구별할 필요가 없습니다. 왜냐하면 정수값을 bit배열로 표현하는 방법은
하나만 있을테니까요. 그러나 unicode 경우에는 UTF-8, UTF-16 같이 몇 가지 다른 encoding을 사용합니다.
charset이 같다면, 그 charset을 지원하는 어떤 encoding을 사용하든지, 각 문자에 대응하는 논리적인 정수값은 동일합니다.
그러나 실제로 기록되는 bit배열은 encoding에 따라 달라질 수 있습니다. 이 경우, 제대로 데이터를 주고 받으려면, charset뿐 아니라 encoding까지도 맞춰야 합니다.


posted by 유돌이
2008. 12. 20. 22:11 PHP/Java Script/html

* 쿠키와 세션이란 같은 사용자인지를 알아내는 방법 *

* 정보가 쿠키는 클라이언트, 세션은 서버에 저장됨 *

 

1.웹사이트에 로그인 후,
주소표시줄에 다음을 입력

javascript:alert(document.cookie)

2.cookie
2-1. 쿠키란?
같은 사용자인지를 알아내기 위해 클라이언트쪽에 저장되는 값.

2-2. Cookie사용법

setCookie(쿠키변수,변수값,시간,디렉토리);

** 쿠키변수 : $는 사용하지 않는다. 단, 저장된 쿠키값을 사용할 때는 $변수명과 같이 사용

** 변수값 : 쿠키 생성할 때는 값을 입력하고, 삭제시에는 ""와 같이 작성

** 만료시간 : 쿠키 변수가 쿠키값을 가지고 있는 유효 시간을 나탸낸다. "0"으로 설정하면 브라우저가 닫히면 쿠키값이 사라지고 기간을 주는 경우에는 "time()+3600"과 같은 형태로 설정한다.

** 디렉토리 : 아무값도 설정하지 않는 경우 서브디렉토리에만 쿠키가 적용되나 상위,하위의 모든 디렉토리에서 적용하기 위해서는 '/'로 설정

a.php
< ?
setcookie("userid","suhoi");
?>

b.php
< ?
echo $userid;
?>


< ?
global $mode;
if (!$mode){
echo " 여기는 cookie.php입니다. < br>";
echo "< form name=cookie method=get action=cookie.php>";
echo "            ";
echo "ID : < input type=text name=id size=10> < br>" ;
echo "Nickname : < input type=text name=nickname size=15> < br>";
echo "< input type=hidden name=mode value=write>< br>< br>";
echo "< input type=submit value='쿠키에 저장되었는지 볼까요'>< br>";
echo "< /form>";
}
if ($mode=="write"){
setcookie("ID",$id,0);
setcookie("Nickname",$nickname,time()+36600);
echo "ID : $ID < br>" ;
echo "Nickname : $Nickname < br>< br>";
echo "< a href='cookie.php?mode=view'>쿠키에 저장되었는지 볼까요?< /a>< br>";
}
if ($mode=="del"){
setcookie("ID","");
setcookie("Nickname","");
echo "ID : $ID < br>" ;
echo "Nickname : $Nickname < br>";
echo "여기에서는 ID에 설정된 값을 모두 삭제합니다.< br>< br>";
echo "< a href='cookie.php?mode=view'>쿠키값이 삭제되었는지 볼까요?< /a>< br>";
}
if ($mode=="view"){
echo " 현재 적용된 쿠키의 상태를 보여줍니다. < br>";
echo "ID : $ID < br>" ;
echo "Nickname : $Nickname < br>< br>";
echo "< a href='cookie.php?mode=del'>쿠키값을 삭제합니다.< /a>< br>< br>";
echo "< a href='cookie.php'>다시 쿠키처음으로 돌아갑니다.< /a>< br>";
}
?>

3. 세션 시작하기

◆ 세션이란 무엇인가?

세션도 역시 상태 유지(로그인유지) 를 위해 필요한 것임다.


◆ 샌님 근디 왜 세션을 써야 하나용 ?
아직도 감이 안올수도 있슴다. 왜 써야 할까요? 저번에도 말했듯이 이놈이 이놈인지 저놈이 저놈인지 구별하기
위해서 사용함다. 세션은 쿠키의 발전된 개념으로 서버에 저장이 됨다. 물론 사용자 하드에도 저장이 되나 서버
에 저장되어 있는 값이 우선임다.

쿠키 보다는 약간 보안이 좋아졌다고 하네용 ^^

◆ 어케 쓰는가 ?
세션을 사용할려면 반드시 session_start() 를 먼저 써주어야 함다. 이유 여하 불문 하고 맨먼저 session_start
() 를 사용하면 세션을 쓰겟다 이소리 임다.^^


◆세션 값을 봐볼까나 ?

se1.php
< ?
session_start();
$my_session="마이홈 쩜 ,네이버 쩜 컴 ,수호이";
session_register("my_session");
print "세션등록완료";
?>
-------------------------------------------
se2.php
< ?
session_start();
print "저장된 세션값은 :$my_session 이다 ";
?>

se1.php 와 se2.php 는 세션을 이해 하기 쉬운 예제 임다.
우선 브라우져 에서 se2.php 를 실행 해 보세요. 그러면 당연히 아무것도 안찍히죵 ^^
세션값을 정해 주지 않았으니까요 ^^

세션값을 정해 주는 놈이 session_register() 임다. 세션_등록()이죵 ^^ 쿠쿠

$my_session="마이홈 쩜,네이버 쩜 컴 ,수호이"; 나 마찬가지죵. 그러나 변수와는 달리 어디서나 불러도 값을
불 를 수 있슴다. ^^


◆ 좀 더 예가 필요하당.
온라인 폴 시스템을 예를 들어 보자. 한번 투표 할 경우 다음에는 투표를 하지 못해야 한다. 새로고침 을 열나
눌러서 올라가게 만들면 안되는 것이다. 온라인 폴의 중복 체크는 아주 간단하다.

poll.php

< ?
session_start();
if(!$c)
{
$c="vote";
session_register("c");
echo "투표하러가세";

}else{
echo " 당신은 투표 했는디...날 바보로 아남? ";
}
?>

poll.php 를 실행 해보세용 ^^
처음에 했을때와 2번째 했을때 를 비교 하세요^^


◆ 실수 체크
세션을 등록 할때 $ 는 들어가지 않는다. 반드시 주의 하길 바람다. ^^

$c="vote";
session_register("$c");

가 아니라
$c="vote";
session_register("c");
이며

그다음에 $c 로 값을 읽어 옴다 ^^


3-1. session_start() : 페이지의 맨 위에서 호출하여야 한다. session_register()를 바로 사용하는 경우 내부적으로 session_start()를 호출하기 때문에 큰이상은 없지만 호출하는 것이 좋다..

아니면 php.ini안의 session.auto_start옵션을 1또는on으로 수정해 두면 된다.


3-2. 예제
< ?
global $mode;

function ss_dispaly(){
global $ID, $Nickname;
echo "< br>< b> 현재 설정된 SESSION 변수를 확인합니다.< /b>< br>";
echo "< br> ID 등록여부: ";
echo session_is_registered('ID');
echo "< br>Nickname 등록여부: ";
echo session_is_registered('Nickname');
echo "< br>";
echo "< br> ID값: ";
echo $ID;
echo "< br> Nickname값: ";
echo $Nickname;
}

if (!$mode){

echo "< br>< hr wdith=80%>< br>여기는 session.php 시작입니다. < br>";
echo "ID와 닉네임을 입력하세요. < br>";
echo "< form name=session method=post action=session.php>";
echo "           ";
echo "ID : < input type=text name=ID size=10> < br>" ;
echo "Nickname : < input type=text name=Nickname size=15> < br>";
echo "< input type=hidden name=mode value=write>< br>< br>";
echo "< input type=submit value='세션에 저장되었는지 볼까요'>< br>";
echo "< /form>< br>< hr wdith=80%>";
}

if ($mode=="write"){
session_start();
session_register("ID");
session_register("Nickname");
ss_dispaly();
echo "< br>< br>< a href='session.php?mode=del'>session 데이터를 삭제해 볼까요?< /a>< br>";
}

if ($mode=="del"){
session_start();
session_unregister("ID");
session_unregister("Nickname");
session_destroy();
echo "여기에서는 세션에 설정된 값이 모두 삭제되었습니다.< br>< br>";
ss_dispaly();
echo "< br>< hr width=100%>< br>";
echo "< a href='session.php'>다시 처음으로 돌아가 볼까요?< /a>< br>";
}
?>

* 세션은 쿠키와 다르게 유지시간을 설정하지 않는다. *


** 세션의 장점 **
1. 서버에 저장되어 보안적인 측면이 강화
2. 웹페이지를 읽기만 하더라고 세션의 연결 유지시간이 자동으로 증가돼.일정시간동안 아무 작업을 하지 않을시 세션을 끊기가 유리

 

---------------------------------------------------------------------------------------

 

요약

1. 세션 / 쿠키

: 같은 사용자인지 구분

 

2. 쿠키 설정(삭제)

: setcookie("변수","값",시간,디렉토리)

  setcookie("변수","")

 

3. 세션

: session_start();

할당 : session_register(변수)

삭제 : sesstion_unregister(변수)



-------------------------------------------------------------------------------
sDZpgPEIa4m0tdZqmgJrvGO//b7vVKnZeY5tOA/LS90=
posted by 유돌이
2008. 12. 20. 22:10 PHP/Java Script/html

[설명]

(Yes, No) 결정을 나타날 수 있도록 하는 함수!!

 

[사용방법]

    - winodw.confirm("문자열 메시지")

 

[리턴]

참(True), 거짓(Flase)을 리턴한다.

 

[예제]

<html>
<head>
    <title>confirm Method</title>
    <script type="text/javascript">
    <!--
    function withDraw(){
    var bAnswer = confirm("정말 탈퇴 하시렵니까?            ")
    if (bAnswer == true)
    alert("탈퇴 처리되었습니다.          ")
    location.href = "http://blog.naver.com/cysnim12"
    }
    // -->
    </script>
</head>
<body><br /><br /><br />
   <p align="center"> <button onclick="withDraw()">탈퇴</button></p>
</body>
</html>


'PHP/Java Script/html' 카테고리의 다른 글

charset 및 encoding의 의미  (0) 2009.03.21
세션과 쿠기  (0) 2008.12.20
strtotime 함수(php)  (0) 2008.12.20
[data type의 char와 varchar의 차이점!]  (0) 2008.12.20
php 함수(explode, trim, substr)  (0) 2008.12.20
posted by 유돌이
2008. 12. 20. 22:09 PHP/Java Script/html

[strtotime 함수]

 

1. 형식
- strtotime("+1 day"); 하루후 타임스탬프
- strtotime("-1 day"); 하루전
- strtotime("+1 week"); 일주일후
- strtotime("+1 month"); 한달후
- strtotime("+1 year"); 일년후

 

2. 예제

- date("Y-m-d",strtotime ("+1 day")); => 오늘날짜 부터 하루 뒤의 날짜


'PHP/Java Script/html' 카테고리의 다른 글

세션과 쿠기  (0) 2008.12.20
Confirm Method (확인/취소 창 나태내는 함수)  (0) 2008.12.20
[data type의 char와 varchar의 차이점!]  (0) 2008.12.20
php 함수(explode, trim, substr)  (0) 2008.12.20
str_replace 란?  (0) 2008.12.20
posted by 유돌이
2008. 12. 20. 22:08 PHP/Java Script/html

[data type의 char와 varchar의 차이점!]
: 메모리의 가변성의 유, 무

 

※ 가변성 : 일정한 조건에서 변할 수 있는 성질.

 

ex) char(100) = 'good' -> char(4) [남는 96에 대해서는 모두 공백값으로 표시]
    varchar(100) = 'good' -> char(4)로 변환


posted by 유돌이
2008. 12. 20. 22:07 PHP/Java Script/html

1. explode
: 문자열을 주어진 문자열을 기준으로 분리한다.

형식 => array explode ( string separator, string string [, int limit])

예제 => $str ="1/2/3/4/5/6/6/6/7/7/7/7/7/8/8/8/8/9/9/9/9/96897/465/345/";
        $str = explode ("/", $str);

        for($num = 0; $num < count($str); $num++) {
           echo $str[$num] ."\n";
        }

2. trim
: 문자열의 처음과 끝에 있는 공백문자를 제거하고 이 문자열을 반환한다.
(공백문자 :  "\n", "\r", "\t", "\v", "\0"..)

형식 => string trim ( string str)

예제 => $str ="1/2/3/4/5/6/6/6/7/7/7/7/7/8/8/8/8/9/9/9/9/96897/465/345/";
        $str = explode ("/", $str);

        for($num = 0; $num < count($str); $num++) {
           $str_2 =$str[$num]."\n";
           $str_2 = trim($str_2);
           echo $str_2;
        }

3. substr
: 문자열을 문자단위로 잘라서 배열에 담는다.

형식 => string substr ( string string, int start [, int length])

예제 =>  $string  =  "abcde";
        
         echo substr($string, 1);
 


'PHP/Java Script/html' 카테고리의 다른 글

strtotime 함수(php)  (0) 2008.12.20
[data type의 char와 varchar의 차이점!]  (0) 2008.12.20
str_replace 란?  (0) 2008.12.20
PHP의 미리선언된 변수 (Predefined variable)  (0) 2008.12.20
자주 사용하는 css 속성  (0) 2008.12.20
posted by 유돌이
2008. 12. 20. 22:07 PHP/Java Script/html

str_replace 란?

 

- 형식 : str_replace('찾을문자열', '바꿀문자열', '문자열')

- 정의 : 대소문자 구별없이 문자열에서 특정 문자영을 특정 문자열로

           바꾸고자 할 경우에 사용한다.


[예제]
$stri = "따식이는 천재다"; //치환할 내용이 있는 문자열
$newstr = str_replace("따식이", "따*이", $stri);
 
==>"따*이는 천재다"

posted by 유돌이
2008. 12. 20. 22:05 PHP/Java Script/html
출처 遂心愿 | 커트
원문 http://blog.naver.com/kippee/130004339307

PHP에서는 몇개의 변수를 미리 정의하여 연관배열 형태로 제공하는 것으로써

이 변수를 통하여 웹서버나 현재 실행중인 스크립트에 관한 정보를 알수 있고 또 사용자가 웹페이지를 통하여 서버에 전송한 데이터에도 쉽게 접근할 수 가 있다

 

 

변수

설명

$_SERVER   

웹서버 및 스크립트와 관련된 정보를 담고 있는 연관배열

$_GET

GET방식을 통하여 사용자가 서버에 전송한 데이터를 담고 있는

연관 배열

http://www.php.net/manual/en/reserved.variables.php

$_POST

POST 방식을 통하여 사용자가 서버에 전송한 데이터를 담고 있는

연관 배열

$_COOKIE

쿠키(Cookie) 정보를 담고 있는 연관배열

$_REQUEST

GET방식이나 POST방식을 통하여 사용자가 서버에 전송한 데이터와

쿠기정보를 담고 있는 연관배열

GET방식으로 전송된 데이터를 담고 있는 $_GET배열이나 POST방식으로 전송된 데이타를 담고있는 $_POST 배열이던 간에 바로 $_REQUEST 배열이며 전송방식(GET,POST)에 상관없이 서버에 전송된 특정한 변수의 데이터를 참조하고 할 때에는 유용하게 사용할 수 있다

$_FILE

파일 업로드를 통해 사용자가 서버에 전송한 데이터를 담고 있는 연관배열

$_SESSION

세션(Session) 정보를 담고 있는 있는 연관배열

$_ENV

서버의 환경정보를 담고 있는 연관배열

$GLOBALS

모든 전역변수를 담고 있는 연관배열

 


posted by 유돌이
prev 1 2 3 next