'Language/PHP'에 해당되는 글 85건

  1. 2010.08.02 strtr 과 str_replace함수 차이
  2. 2010.08.02 php.ini Session 옵션
  3. 2010.08.01 Warning: main(): URL file-access is disabled in the server
  4. 2010.07.27 정규표현식
  5. 2010.07.26 strtotime()
  6. 2010.07.21 php xml parser
  7. 2010.07.20 자바스크립트 변수를 php변수로 넘기기
  8. 2010.07.16 HTTP_REFERER
  9. 2010.07.16 문자열 처리 함수
  10. 2010.07.15 time(), mktime(), date() 종합

strtr 과 str_replace함수 차이

Language/PHP 2010. 8. 2. 15:49

PHP 에서는 두가지 함수가 있는데

strtr과 str_replace함수이다.

 

str_replace함수는 ASP의 Replace와 같은 역활을 하는데

사용법은

str_replace("찾을문자열","변경할문자열","문자열 원본")

예) $string ="This is a BIG test with SMALL RESULT";

echo str_replace("BIG","SMALL",$string);

결과값: This is a SMALL test with SMALL RESULT

 

원본 위치만다르고 쓰는 방식은 같다.

 

특이한 것은 strtr함수인데

이것은 1:1 바꿔주는 역활을 하는 함수이다.

사용법은

strtr("문자열","변경할문자열","변경할 문자열")

예)$string ="This is a BIG test with SMALL RESULT";

echo strtr($string,"BIG","SMALL");

결과값: This is a SMA test with SMALL RESULT

변경할 문자열의 length만큼 바뀌는 성실이 있다.

만약 다음 처럼 한다면

$string ="This is a big test with small result";

echo strtr($string,"big","small");

결과값:Thms ms a sma test wmth small result

보는 봐와 같이 b -> s, i -> m, g -> a로

치환이 되어 버린다. 이것을 str_replace처럼 쓰고 싶으면 배열을 이용해서 사용해도 된다.

 

< ?
   $string 
"This is a BIG test with SMALL RESULT\n";
   
$repl = array('BIG' => 'SMALL''SMALL' => 'BIG'
);
   echo 
str_replace(array_keys($repl), array_values($repl), $string
);
   echo 
strtr($string$repl
);
? >

 

이것의 결과값은

This is a SMALL test with BIG RESULT

이런 식으로 변환이 된다.


출처 - http://blog.daum.net/pepmanager/6023108

'Language > PHP' 카테고리의 다른 글

fsockopen  (0) 2010.08.14
Variable 함수  (0) 2010.08.10
php.ini Session 옵션  (0) 2010.08.02
Warning: main(): URL file-access is disabled in the server  (0) 2010.08.01
정규표현식  (0) 2010.07.27
:

php.ini Session 옵션

Language/PHP 2010. 8. 2. 15:25

[Session]
session.save_handler = files
session.save_path = /tmp
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.gc_maxlifetime = 1440
session.cache_expire = 180


session.save_handler :
기본적으로 Files 방식을 이용한다.
session_module_name() 을 통하여 현재 설정된 정보를 볼 수 있다. 공유 메모리를 사용하는 MM방식과 USER방식을 지원하다.
USER방식을 사용하는 경우에는 session_set_save_handler(string open, string close, string read, string write, string destroy, string gc)을 이용하여 session_set_save_handler("함수명", "함수명", "함수명", "함수명", "함수명", "함수명")과 같이 콜백 함수를 정의하고 콜백 함수를 호출하여 세션 데이터나 세션ID등을 데이터베이스 등에 보관하여 사용할 수도 있다.


session.save_path :
세션 파일을 저장할 경로을 의미하고 files 방식에서는 /tmp가 기본적인 파일이 저장되는 디렉토리의 절대 경로이다.


session.use_cookies :
세션과 함께 쿠키를 사용할 것인가에 대한 설정으로 기본적으로 쿠키와 함께 사용하도록 되어 있다.
쿠키를 사용하지 않는 경우에는 0으로 설정하고 버전에 따라서는 On과 Off로 설정하기도 한다.


session.name :
세션ID를 쿠키에 저장한 경우 PHP에서 세션ID를 확인하기 위한 변수명을 의미한다.
기본값으로 PHPSESSID로 설정되어 있으며$PHPSESSID라고 하면 세션ID를 확인할 수 있다.


session.auto_start :
PHP시작과 동시에 세션이 자동으로 스타트 되도록 하는 옵션이다.
기본값은 0으로 자동으로 시작되지 않도록 되어 있다.
그러므로 세션을 사용하기 전에는 session_start()를 호출해야 하고, 자동으로 시작하게 하려면 1로 설정하면 된다.
버전에 따라서는 On과 Off로 설정하기도 한다.


session.cookie_lifetime :
세션ID를 저장한 쿠키의 활성화 시간 또는 유효 시간을 설정하는 것이다.
기본값으로는 0이 설정되어 있어 브라우저가 종료되면 자동으로 쿠키값은 삭제된다.
session_set_cookie_params()함수를 이용하여 쿠키의 유효 시간을 변경할 수 있으며 PHP.INI를 수정하여 쿠키 적용 시간을 변경 가능하다.


session.cookie_path :
세션ID가 저장된 쿠키가 적용될 유효 경로(디렉토리)를 설정하는 부분이다.
기본값은 "/"로 모든 경로에서 적용 가능하도록 설정되어 있다.
session.cookie_lifetime과 같이 session_set_cookie_params()함수를 이용하여 쿠키의 적용 디렉토리를 변경할 수 있다.


session.gc_maxlifetime :
사용되지 않는 것으로 보이는 세션 데이터를 삭제한다.
세션ID를 삭제하는 것이 아니라 기본 설정 시간인 1440초 동안 아무런 요청이 없을때 자동으로 세션 데이터를 삭제하도록 되어 있다.
이렇게 자동으로 삭제하는 이유는 서버의 부하를 줄이기도 하지만 클라이언트에서 접속을 종료하였는지 여부를 확인할수 없으므로1440초 동안 사용하지 않는 데이터는 삭제하게 한다.


session.cache_expire :
서버에 저장된 세션ID의 활성화 시간이다.
클라이언트에서 브라우저를 닫아버리면 서버에서는 클라이언트가 연결중인지 아닌지 확인하는 방법이 없으므로 미리 세션데이터를 삭제하고 세션ID는 180분 이후에 삭제시킨다.
만약 세션 ID를 삭제하지 않으려면 PHP.INI를 수정하여 시간을 늘려주면 된다.

2010/05/04 18:51 2010/05/04 18:51

'Language > PHP' 카테고리의 다른 글

Variable 함수  (0) 2010.08.10
strtr 과 str_replace함수 차이  (0) 2010.08.02
Warning: main(): URL file-access is disabled in the server  (0) 2010.08.01
정규표현식  (0) 2010.07.27
strtotime()  (0) 2010.07.26
:

Warning: main(): URL file-access is disabled in the server

Language/PHP 2010. 8. 1. 14:58
Warning: main(): URL file-access is disabled in the server

위 에러는 php.ini에서

allow_url_fopen = Off로 되어 있을 경우 발생함

on으로 할경우 정상적으로 화면에 표시됨

'Language > PHP' 카테고리의 다른 글

strtr 과 str_replace함수 차이  (0) 2010.08.02
php.ini Session 옵션  (0) 2010.08.02
정규표현식  (0) 2010.07.27
strtotime()  (0) 2010.07.26
php xml parser  (0) 2010.07.21
:

정규표현식

Language/PHP 2010. 7. 27. 09:19

 

PHP는 POSIX와 Perl이라는 두 가지 스타일 정규표현식을 지원한다.(POSIX가 기본)

POSIX가 배우기 쉽고 빠르지만 이진적으로 안전하지 않다고 한다.

POSIX를 기준으로 정리 들어가 보자.

 

1. 문자집합과 클래스

  '.'문자 : 줄바꿈문자(\n)를 제외한 모든문자를 대신할 수 있다.

    ex) .at     // cat, sat, mat 등과 같은 셈

 

  문자클래스([]) : []안의 문자들을 문자클래스라 한다.

    ex) [aeiou] //모든 모음(aeiou중의 한글자)이라는 의미

 

  범위 표현(-) : 범위를 사용하기 위한것으로 문자사이에 '-'를 사용

    ex) [a-zA-Z]  // 모든 대소문자 중의 한글자

 

  제외(^) : []안에서 쓰일 때 'not'의 뜻으로 제외하고자 할때 사용

    ex) [^a-z] // 소문자를 제외

          ^[a-z] // 소문자로 시작하는 것을 가리킴

 

  문자클래스

    - [[:alnum:]] : 알파벳 문자, 숫자

    - [[:alpha:]] : 알파벳 문자

    - [[:lower:]] : 소문자

    - [[:upper:]] : 대문자

    - [[:digit:]] : 십진법의 숫자

    - [[:xdigit:]] : 16진법의 숫자, 문자

    - [[:punct:]] : 구두점

    - [[:blank:]] : 탭, 스페이스

    - [[:space:]] : 공백 문자들

    - [[:cntrl:]] : 컨트롤 문자들

    - [[:print:]] : 모든 출력 가능한 문자들

    - [[:graph:]] : 스페이스를 제외한 모든 출력 가능 문자

 

  반복

    '+' : 앞글자가 한번이상 반복될 수 있음을 뜻한다.

    '*' : 앞글자가 0번이상 반복될 수 있음을 뜻한다.

 

  부분표현식

    () : ()안의 모든 것을 나타낸다.

    ex) (very )*large //'large', 'very large', 'very very large'...등과 일치

 

  반복의 횟수 제한하기

    {} : {}안에 숫자를 넣어서 반복횟수 제한,

    ex) (very){3} //3번 반복

          (very){2,4} // 2~4번 사이로 반복

          (very){2, } // 적어도 2번이상 반복

 

  문자열의 시작과 끝 고정하기

   '^' : 시작부분에 사용되며, 문자열 앞부분에 이 표현이 있어야 함을 의미

    ex) ^bob // bob로 시작하는 문자열과 일치

    '$' : 뒷부분에 사용되고, 이표현으로 문자열이 끝나야 함을 의미

    ex) com$ //com으로 끝나는 문자열과 일치

           ^[a-z]$ // a-z까지의 모든글자(글자 하나)와 일치

 

  특수문자 사용

    ',', '{', '$'등의 특수문자를 사용할때에는 이스케이프 문자(역슬래시)를 사용하면 된다.

    ex) \, or \{ or \$  // , { $ 문자의 사용

 

  선택하기

    '|' : 여러 문자열중 선택하기 위해

    ex) com | edu | net // com이나 edu또는 net과 일치하는 문자열

    //--- split()를 이용한 이메일 분리 ---//

    $address = 'username@mail.com';

    $arr = split('\. | @', $address);

    while( list($key, $value) = each($arr) ) {

      echo $value;

    }

 

2. ereg() 함수 - 문자열중에 찾는값이 있으면 true를 반환 아니면 false를 반환한다.

  > ereg("찾는값", "문자열", array [matches])

  3번째 인자를 사용할 경우에는 값을 찾아낸 문자열을 [matches]에 저장한다.

  // 근데 배열저장값이 찾는값하고 왜 동일하지..? 난 문자열이 나오는걸 기대했었다...

 

3. eregi() 함수 - ereg와 같으나 대소문자를 구분한다.

  > eregi("찾는값", "문자열", array [matches])

 

4. ereg_replace() 함수 - 문자열중 찾는값이 나오면 치환값으로 치환한다.

  > ereg_replace("찾는값", "치환값", "문자열")

 

5. eregi_replace() 함수 - ereg_replace와 같으나 대소문자를 구분한다.

  > eregi_replace("찾는값", "치환값", "문자열")

'Language > PHP' 카테고리의 다른 글

php.ini Session 옵션  (0) 2010.08.02
Warning: main(): URL file-access is disabled in the server  (0) 2010.08.01
strtotime()  (0) 2010.07.26
php xml parser  (0) 2010.07.21
자바스크립트 변수를 php변수로 넘기기  (0) 2010.07.20
:

strtotime()

Language/PHP 2010. 7. 26. 14:03

strtotime 함수...

문자열 형태의 날짜를 입력받아 UNIX timestamp 값을 돌려주는 함수다.

미국인들은 쉽게 쓸 수 있지만, 우리나라와는 날짜 표현 방법이 틀리기 때문에

약간 헷갈릴 소지가 있다. 그래서 정리해 봤다.

 

time()     1104151691
strtotime("now")     1104073200     //위와 같이 now는 php 5.0, 5.2에서 오작동 함.

strtotime("1972-09-24")     86108400
strtotime("72-9-24")     86108400
strtotime("72-09-24")     86108400
strtotime("9/24/72")     86108400
strtotime("24 September 1972")     86108400
strtotime("24 Sept 72")     86108400
strtotime("24 Sep 72")     86108400
strtotime("Sep 24, 1972")     86108400
strtotime("24-sep-72")     86108400
strtotime("24sep72")     86108400

strtotime("20:02")     1104145320
strtotime("8:02pm")     1104145320

strtotime("last day")     1103986800
strtotime("26-dec-2004")     1103986800
strtotime("next day")     1104246000
strtotime("next monday")     1104678000
date("Y-m-d H:i:s", strtotime("last day"))     2004-12-26 00:00:00

strtotime("1 year")     1135609200
strtotime("1 year ago")     1072450800
strtotime("3 years")     1198681200
strtotime("2 days")     1104246000
strtotime("tomorrow")     1104159600
strtotime("1 days")     1104159600
strtotime("yesterday")     1103986800
strtotime("-1 days")     1103986800
strtotime("1 days ago")     1103986800

strtotime("20041227")     1104073200

 

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

 

$time = time();
echo date("Y-m-d",strtotime("-1 day", $time))." 하루 전(어제)<br>";
echo date("Y-m-d",strtotime("now", $time))." 현재<br>";
echo date("Y-m-d",strtotime("+1 day", $time))." 하루 후(내일)<br>";
echo date("Y-m-d",strtotime("+1 week", $time))." 일주일 후<br>";
echo date("Y-m-d",strtotime("-1 month", $time))." 한달 전<br>";
echo date("Y-m-d",strtotime("+1 month", $time))." 다음달<br>";
echo date("Y-m-d",strtotime("+6 month", $time))." 6달후<br>";
echo date("Y-m-d",strtotime("+12 month", $time))." 12달후<br>";
echo date("Y-m-d",strtotime("next Thursday", $time))." 다음주 목요일<br>";
echo date("Y-m-d",strtotime("last Monday", $time))." 지난 월요일<br>";
echo date("Y-m-d",strtotime("10 September 2000", $time))." 2000년 9월 10일 <br>";

 

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

 

문제)

strtotime() 함수를 이용하면 하루전 한달 뒤 등을  손쉽게 구할 수 있습니다.
그런데 오늘 즉 31일에 문제점이 발생하네요.

print date("Y년 m월",strtotime("-1 month"));

위와 같이 해서 출력 하면...
공교롭게도... 2005년 09월이 아닌 2005년 10월이 출력됩니다.
그건 아마도 30일에 해당되는 날짜 만큼만 빼서 발생하는 문제인것 같습니다.


해결)

위의 경우엔 strtotime()함수보다는
date("Y년 m월",mktime(0,0,0,date("m")-1,15,date("Y")));
가 가장 적당해 보입니다.
혹시 더 좋은 방법 있으면 ^^;

위에서 1이 아니고 15로 한거는 2월달을 생각해서 입니다.

 

ex)

if (Date("d") == "31") {
  if (date('m')-1 == "12") {
    $이전조사월 = Date("Ym",mktime(0,0,0,date('m')-1,15,date('Y')-1));
    $이전조사월영어 = Date("F",mktime(0,0,0,date('m')-1,15,date('Y')-1));
  }
  else {
    $이전조사월 = Date("Ym",mktime(0,0,0,date('m')-1,15,date('Y')));
    $이전조사월영어 = Date("F",mktime(0,0,0,date('m')-1,15,date('Y')));
  }
  if (date('m')-2 <= "12" && date('m')-2 >= "11") {
    $이전전조사월 = Date("Ym",mktime(0,0,0,date('m')-2,15,date('Y')-2));
    $이전전조사월영어 = Date("F",mktime(0,0,0,date('m')-2,15,date('Y')-2));
  }
  else {
    $이전전조사월 = Date("Ym",mktime(0,0,0,date('m')-2,15,date('Y')));
    $이전전조사월영어 = Date("F",mktime(0,0,0,date('m')-2,15,date('Y')));
  }
}
else {
  $이전전조사월 = Date("Ym",strtotime("-2 month()"));
  $이전전조사월영어 = Date("F",strtotime("-2 month()"));

  $이전조사월 = Date("Ym",strtotime("-1 month()"));
  $이전조사월영어 = Date("F",strtotime("-1 month()"));
}


[출처] strtotime() 함수|작성자 센스남

'Language > PHP' 카테고리의 다른 글

Warning: main(): URL file-access is disabled in the server  (0) 2010.08.01
정규표현식  (0) 2010.07.27
php xml parser  (0) 2010.07.21
자바스크립트 변수를 php변수로 넘기기  (0) 2010.07.20
HTTP_REFERER  (0) 2010.07.16
:

php xml parser

Language/PHP 2010. 7. 21. 10:52
아래 사이트에 PHP 4, PHP 5 용 xml 파서가 있다.

쉽게 사용 할 수 있다.(참고, xml element name 에 대문자를 사용하지 말것)

ww.criticaldevelopment.net/xml/doc.php

'Language > PHP' 카테고리의 다른 글

정규표현식  (0) 2010.07.27
strtotime()  (0) 2010.07.26
자바스크립트 변수를 php변수로 넘기기  (0) 2010.07.20
HTTP_REFERER  (0) 2010.07.16
문자열 처리 함수  (0) 2010.07.16
:

자바스크립트 변수를 php변수로 넘기기

Language/PHP 2010. 7. 20. 18:06

자바스크립트에서 PHP로 변수가 넘어가지 않는다. (중요한 개념이다 !!)

=> Ajax 를 사용하면 되긴 된다..

자바스크립트는 클라이언트에서 실행되고 PHP 는 서버에서 실행되기 때문이다.



자바스크립트에서 php 변수가 필요했다.


자바스크립트에서 변수를 불러보았다.

에러 난다 T_T


결국에는 PHP 에서

자바스크립트 함수를 사용해서 변수를 저장해 놓았다

일종의 setX , getX 같은 거 ..


<?
    $myID = findID();
    echo("<script language=javascript> aa(\"$myID\"); </script>");
?>

<script>
    var name;
    function aa(x) {
        name = x;
    }
</script>
이렇게 하면 name 을 이용해서 사용할 수 있다.





==============================================================================================================

<script type="text/javascript">
function toggle(){
    var i="안녕하세요?";
    var str="<?php $i='"+i+"'; ?>";
    var echo="<?php echo $i; ?>";
    
    alert(echo);
}
</script>

<input type="button" id="bt" value="확인" onclick="toggle()">

'Language > PHP' 카테고리의 다른 글

strtotime()  (0) 2010.07.26
php xml parser  (0) 2010.07.21
HTTP_REFERER  (0) 2010.07.16
문자열 처리 함수  (0) 2010.07.16
time(), mktime(), date() 종합  (0) 2010.07.15
:

HTTP_REFERER

Language/PHP 2010. 7. 16. 11:30

리턴값 : String

ASP => Request.ServerVariables("HTTP_REFERER")
PHP => $_SERVER['HTTP_REFERER']
JSP => request.getHeader("REFERER")


0. 어떻게 방문 했는지 추출
- HTTP_REFERER의 값의 유무

- 각 웹서버의 로그파일 이용

1. 주소창에 주소를 입력해서 들어오는 경우
- HTTP_REFERER의 값이 없음

ex)strReferPath = Trim(Request.Servervariables("HTTP_REFERER"))
strReferPath == null ? 1 : 0 -> 1이 반환됨

2. '즐겨찾기'를 이용해서 들어오는 경우(IE의 경우)
- HTTP_REFERER의 값 없음
- 로그파일에 ..../favicon.ico로그가 먼저 남음
- 이는 IE가 즐겨찾기를 눌러서 사이트를 방문할 경우 favicon.ico 요청을 하고, 해당 URL의 요청을 하기때문임

3. 링크를 통해서 들어오는 경우.(쉽게 말해서 a태그를 통해)
- HTTP_REFERER에 이전 URL정보가 들어있음.

3가지 패턴
자바스크립트로 location.href를 통해 설정된 주소로 왔을 경우 이전 주소 알지 못함

[출처] HTTP_REFERER|작성자 들닢

'Language > PHP' 카테고리의 다른 글

php xml parser  (0) 2010.07.21
자바스크립트 변수를 php변수로 넘기기  (0) 2010.07.20
문자열 처리 함수  (0) 2010.07.16
time(), mktime(), date() 종합  (0) 2010.07.15
htmlspecialchars  (0) 2010.07.14
:

문자열 처리 함수

Language/PHP 2010. 7. 16. 11:04

문자열 처리함수

 

addslashes()
-용도: 작은따옴표 큰따옴표와 같은 특정문자 앞에 역슬래시 문자를 붙인다.
-방법: addslashes()

 

stripslashes()
-용도: allslashes로 역슬래시 처리된 문자를 원상태로 되돌린다.
-방법: stripslashes()

 

htmlspecialchars()
-용도: HTML코드를 소스 그대로 출력해준다.
-방법: htmlspecialchars()

 

nl2br()
-용도: 문자열에 포함된 개행 문자를 <br>태그로 모두 바꿔준다.
-방법: nl2br()

 

echo()
-용도: 문자열 출력
-방법: echo("변수명" 또는 "문자열")

 

sprintf()
-용도: 포맷 문자열을 통해 지정해 준 포맷으로 문자열을 표시한다.
-방법: sprintf("포맷","변수명")

 

printf()
-용도: 지정할 수 있는 포맷에 따라 문자열을 출력한다.
-방법: printf("포맷","변수명")

 

explode()
-용도: 문자열을 지정해준 구분자로 분리하여 배열에 저장한다.
-방법: explode("구분자","문자열인수") 

<?php
// 예제 1
$pizza  "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces explode (" "$pizza);
echo 
$pieces[0]; // piece1
echo $pieces[1]; // piece2

// 예제 2
$data "foo:*:1023:1000::/home/foo:/bin/sh";
list(
$user$pass$uid$gid$gecos$home$shell) = explode(":"$data);
echo 
$user// foo
echo $pass// *

?>

* list()

<?
 // 예제 1
 $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
 $pieces = explode (" ", $pizza);
 echo $pieces[0]."<br>"; // piece1
 echo $pieces[1]."<br>"; // piece2
 // 예제 2
 $data = "foo:*:1023:1000::/home/foo:/bin/sh";
 list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
 echo $user."<br>"; // foo
 echo $pass; // *
?>

<table>
 <tr>
  <th>Employee name</th>
  <th>Salary</th>
 </tr>

<?php

$result 
mysql_query ("SELECT id, name, salary FROM employees"$conn);
while (list (
$id$name$salary) = mysql_fetch_row ($result)) {
    echo 
" <tr>\n" .
          
"  <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
          
"  <td>$salary</td>\n" .
          
" </tr>\n";
}

?>

</table>

<?php

$info 
= array('coffee''brown''caffeine');

list(
$a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

// 결과
array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}


implode()
-용도: 구분자로 나누어 배열에 담은 문자열을 다시 지정해준 구분자로 연결하여 전체 문자열을 반환한다.
-방법: implode("구분자",배열변수명) 

<?php

$array 
= array('lastname''email''phone'
);
$comma_separated implode(","$array
);

echo 
$comma_separated
// lastname,email,phone

?>


join()
-용도: implode()와 동일한 기능을 수행한다.
-방법: join("/", "배열변수명")

 

split()
-용도: 주어진 문자열을 정규표현식의 패턴에 따라 분리하여 배열에 저장한다.
-방법: implode("정규표현식","문자열") 

<?php
// Delimiters may be slash, dot, or hyphen
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
// Result
//Month: 04; Day: 30; Year: 1973
?>


strcmp()
-용도: 두개의 문자열을 비교하여 참이면1, 거짓이면 0을 반환한다. 대소문자를 구분한다.
-방법: strcmp("문자열","문자열") 또는 strcmp("문자열","변수명") 또는 strcmp(변수명, 변수명)

$str1 = "a";
$str2 = "A";

$cmp = strcmp($str1, $str2);
if($cmp > 0)
    echo "str1이 str2보다 크다";
else if($cmp == 0)
    echo "str1과 str2는 같다";
else
    echo "str1이 str2보다 작다";

 

str1이 str2보다 작다


 

substr()
-용도: 문자열에서 특정시작 문자부터 길이만큼의 문자열을 추출하여 반환한다.
-방법: substr("문자열", 시작문자번호, 문자열의 길이)

  


<?php
echo substr('abcdef'1);     
// bcdef
echo substr('abcdef'13);  
// bcd
echo substr('abcdef'04);  
// abcd
echo substr('abcdef'08);  
// abcdef
echo substr('abcdef', -11); 
// f

// Accessing single characters in a string
// can also be achieved using "square brackets"
$string 'abcdef'
;
echo 
$string[0];                 
// a
echo $string[3];                 
// d
echo $string[strlen($string)-1]; 
// f

?>


strchr()
-용도: 문자열이 처음으로 나타나는 위치부터 끝까지 반환
-방법: strchr("문자열","찾을 문자열")

 

strstr()
-용도:strchr()함수와 동일한 수행을 한다.
-방법: strstr("문자열","찾을 문자열")

 

<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // @example.com 출력.
//$user = strstr($email, '@' true); // PHP 5.3.0부터
//echo $user; // name 출력
?>



@example.com


strrchr()
-용도: 문자열이 마지막으로 나타나는 위치부터 끝까지 반환한다.
-방법: strrchr("문자열","찾을문자열")

 

strpos()
-용도: 문자열 대신 처음으로 나타나는 위치를 숫자로 반환, 이때 숫자는 0부터 시작.
-방법: strpos("문자열","찾을 문자열") 

<?php
$mystring 
'abc';
$findme   'a';
$pos strpos($mystring$findme);

// ===를 사용하는 점에 주의하십시오. ==는 'a'가 0번째
// (처음) 문자이기에 기대하는 대로 작동하지 않습니다.
if ($pos === false) {
    echo 
"'$findme' 문자열을 '$mystring' 문자열에서 찾지 못했습니다.";
} else {
    echo 
"'$findme' 문자열을 '$mystring' 문자열에서 찾았습니다.";
    echo 
"위치 $pos에 존재합니다.";
}
?>


<?php
// offset 앞을 모두 무시하고 문자를 찾을 수 있습니다.
$newstring 'abcdef abcdef';
$pos strpos($newstring'a'1); // $pos = 7, not 0
?>

 

이 함수는 논리 FALSE를 반환하지만, 0이나 "" 등, 논리 FALSE로 취급할 수 있는 다른 값을 반환할 수 있습니다. 자세한 정보는 논리형 섹션을 참고하십시오. 이 함수의 반환값을 확인하려면 === 연산자를 이용하십시오.


strrpos()
-용도: 찾고자 하는 문자열에서 마지막으로 나타나는 위치를 반환한다.
-방법: strrpos("문자열", "찾을 문자열")

 

strlen()
-용도: 문자열의 길이를 반환한다.
-방법: strlen($변수명) 또는 strlen("문자열")

 

<?php
$str 
'abcdef'
;
echo 
strlen($str); 
// 6

$str ' ab cd '
;
echo 
strlen($str); 
// 7
?>


strtolower()
-용도: 알파벳 대문자를 모두 소문자로 바꾸어 반환한다.
-방법: strtolower("문자열")

 

strtoupper()
-용도: 알파벳 소문자를 모두 대문자로 바꾸어 반환한다.
-방법: strtoupper("문자열")

 

ucfirst()
-용도: 알파벳 문자열의 첫 글자를 대문자로 반환한다.
-방법: unfirst("문자열") 

<?php
$foo 
'hello world!'
;
$foo ucfirst($foo);             
// Hello world!

$bar 'HELLO WORLD!'
;
$bar ucfirst($bar);             
// HELLO WORLD!
$bar ucfirst(strtolower($bar)); 
// Hello world!
?>

ucwords()
-용도: 알파벳 문자열의 첫 글자를 대문자로 반환한다.
-방법: ucwords("문자열") 

<?php
$foo 
'hello world!'
;
$foo ucwords($foo);             
// Hello World!

$bar 'HELLO WORLD!'
;
$bar ucwords($bar);             
// HELLO WORLD!
$bar ucwords(strtolower($bar)); 
// Hello World!
?>

strrev()
-용도: 인자로 전달한 문자열의 순서를 역전시킨다.
-방법: strrev("문자열") 

<?php
echo strrev("Hello world!"); 
// "!dlrow olleH"를 출력
?>

strtr()
-용도: 문자열에서 변경하고자 하는 문자열을 변경할문자열로 1:1 변경해준다.
-방법: strtr("문자열","변경하고자하는 문자열","변경할 문자열") 

<?php
$addr 
strtr($addr"äåö""aao"
);
?>



<?php
$trans 
= array("hello" => "hi""hi" => "hello");
echo 
strtr("hi all, I said hello"$trans); // hello all, I said hi
?>


str_replace()
-용도: 문자열 중에 변경하고자 하는 문자열을 찾아 변환한다.
-방법: str_replace("찾을 문자열","변경할 문자열","문자열 원본")

 

chop()
-용도: 문자열의 뒷부분의 공백 문자를 제거한 후 반환한다.
-방법: chop("문자열")

 

trim()
-용도: 문자열의 앞과 뒤에 있는 공백을 제거한 후 문자열을 반환한다.
-방법: trim("문자열")

 

quotemeta()
-용도: 메타문자 앞에 역슬래시를 붙인다.
-방법: quotemeta() 

<?php
$str
= "Hello world. (can you hear me?)"
;
echo
quotemeta($str
);
?>

The output of the code above will be:
Hello world\. \(can you hear me\?\)

ord/chr()
-용도: ord()함수는 문자열에서 첫번째 문자에 아스키코드값을 반환하고 chr()함수는 아스키함수에 해당하는 문자를 반환한다.
-방법: ord("문자열"), chr("아스키값") 

<?
 $str = "a";    // 97
 echo ord($str)."<br>";
 echo chr(97);   // a
?>

parse_str()
-용도: get방식과 같은 형태의 변수형을 변수와 값으로 받을 수 있게 해준다.
-방법: parse_str(변수명)

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str
);
echo
$first; 
// value
echo $arr[0];
// foo bar
echo $arr[1];
// baz

parse_str($str, $output
);
echo
$output['first'];  
// value
echo $output['arr'][0];
// foo bar
echo $output['arr'][1];
// baz

?>


* parse_url();

<?php
 $url = "http://blog.naver.com/amenyes?Redirect=Log&logNo=60743979";
 $info=parse_url($url);

 echo"<pre>";
 var_dump($info);
 echo"</pre>";
?>
// 결과
array(4) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(14) "blog.naver.com"
  ["path"]=>
  string(8) "/amenyes"
  ["query"]=>
  string(27) "Redirect=Log&logNo=60743979"
}

    * scheme - 예. http
    * host
    * port
    * user
    * pass
    * path
    * query - 물음표 ? 뒤
    * fragment - 해시마크 # 뒤

'Language > PHP' 카테고리의 다른 글

자바스크립트 변수를 php변수로 넘기기  (0) 2010.07.20
HTTP_REFERER  (0) 2010.07.16
time(), mktime(), date() 종합  (0) 2010.07.15
htmlspecialchars  (0) 2010.07.14
eval  (0) 2010.07.14
:

time(), mktime(), date() 종합

Language/PHP 2010. 7. 15. 14:16

예제)

<?
// 현재 타임 스탬프
echo time()."<br>";
echo mktime()."<br>";
// 현재 년월일 시분초
echo date("Y-m-d H:i:s")."<br>";
// 특정일 타임 스탬프
echo $mktime = mktime(13,48,00,7,15,2010)."<br>";  // 시,분,초,월,일,년 2010 7 15 13 48 00
// --
echo mktime(date("H",$mktime), date("i",$mktime), date("s",$mktime), date("m",$mktime), date("d",$mktime),date("Y",$mktime))."<br>";
// 타임 스탬프에서 년월일 시분초 얻기
echo $test = date("Y-m-d H:i:s",$mktime)."<br>";
// 특정일로 부터 + 된 시간 구하기
echo date("Y-m-d H:i:s",mktime("", "", "", date("m"), date("d")+30,date("Y") ))."<br>";
?>

결과)

1279170874
1279170874
2010-07-15 14:14:34
1279169280
1279169280
2010-07-15 13:48:00
2010-08-14 00:00:00

'Language > PHP' 카테고리의 다른 글

HTTP_REFERER  (0) 2010.07.16
문자열 처리 함수  (0) 2010.07.16
htmlspecialchars  (0) 2010.07.14
eval  (0) 2010.07.14
환경 변수 및 사용 방법, <?= $REMOTE_ADDR ?>, <?= getenv("REMOTE_ADDR") ?>, <?= $_SERVER["REMOTE_ADDR"] ?>  (1) 2010.07.13
: