'php예제'에 해당되는 글 10건

  1. 2013.07.16 PHP XML DOM 구문
  2. 2013.07.12 PHP Mysql delete 구문 (2)
  3. 2013.07.03 PHP Mysql Connect(PHP 데이터베이스 연동) (4)
  4. 2013.06.28 PHP Email 구문
  5. 2013.06.27 PHP Sessions 구문
  6. 2013.06.13 PHP 반복문(while, for, foreach)
  7. 2013.06.07 PHP IF ~ ELSE 문
  8. 2013.06.05 PHP 연산자
  9. 2013.06.04 PHP String (문자열 변수) (2)
  10. 2013.05.31 PHP 변수에 대하여 (2)

 

이번장에서는 PHP XML DOM 파싱에 관하여 예제를 보며 포스팅하겠습니다.  

이전 포스팅에서 DOM 과 SAX 파싱에 대해서 간략 설명하였습니다.  이번장을 보기전에 우선 이전 포스팅을 본다면 더 도움이 될듯합니다.

 

DOM 은 Document Object Model 의 약자입니다.

DOM 방식은 트리 구조로 XML 문서를 변환하고 전체 문서를 읽어서 엑세스 하기때문에 메모리를 많이 사용하며 조금 무겁다고 느낄수 있습니다.

- 문서 구조 정보와 컨텐츠를 객체로 이용

- 트리에 기반한 객체를 이용함으로써 XML 문서의 구조적 변경 작업에 적합

- XML 문서를 메모리상에서 공유할수 있다는 장점이 있음

- 메모리상에 구체적인 객체 트리를 생성함

- XML 문서를 다루기 위한 복잡한 응용프로그램(브라우저, 편집기)에 적합

- 메모리 사용량이 큼

// 위 내용은 이전 포스팅에서 설명된 내용을 가져온것입니다.
DOM 의 XML 파싱은 PHP의 부분이기 때문에 어떤 특정한 파일을 설치할 필요가 없습니다.
관련예제
----- test.xml ----- (우선 test.xml 파일을 아래와 같이 생성합니다)
<?xml version="1.0" encoding="euc-kr"?>
<note>
<to>철수</to>
<from>영희</from>
<heading>헤더 부분</heading>
<body>이곳은 내용이 들어가는 부분!</body>
</note>
----- xml.php ----- (xml.php 파일을 아래와 같이 생성합니다)
<?php
 $xmlDoc = new DOMDocument(); // 새로운 객체를 생성함
 $xmlDoc->load("test.xml"); // test.xml 파일을 불러들임
 print $xmlDoc->saveXML(); // DOM Tree를 xml 문서로 변환함
 ?>
// 객체를 선언하고 xml 파일을 불러들인후 내용을 출력하는 구문입니다. 출력되는 내용은
철수 <from>영희</from> <heading>헤더 부분</heading> 이곳은 내용이 들어가는 부분!
입니다.
관련예제 2
----- test.xml -----
<?xml version="1.0" encoding="utf-8"?>
<note>
<to>Park</to>
<from>Kim</from>
<heading> header contents !! </heading>
<body> Body contents !! </body>
</note>
// XML은 utf-8을 사용하는 것이  기본 권고사항 입니다.
----- xml.php -----
<?php
 $xmlDoc = new DOMDocument();
 $xmlDoc->load("test.xml");
 $x = $xmlDoc->documentElement; // 문서의 루트 요소를 가져옴
 foreach ($x->childNodes AS $item) {
  print $item->nodeName . " = " . $item->nodeValue . "<br>";
 }
?>
// documentElement 는 그 트리의 탑-레벨입니다. 이 요소는 하나 또는 그 이상의 자식 노드(childNodes)를 가진다. 이 자식 노드는 그 트리의 가지로 보면 됩니다.

노드 인퍼페이스(Node Interface)는 XML 노드 트리의 각 요소를 읽고 쓰기 위해 사용되며, 각각의 노드를 접근하기 위해 documentElement의 childNodes 속성을 접근할 수 있습니다. 

 

// 출력문은 아래와 같습니다.
#text =
to = Park
#text =
from = Kim
#text =
heading = header contents !!
#text =
body = Body contents !!
#text =
 
// XML 에 해당하는 모든 요소를 출력합니다.
DOMDocument 클래스의 매소드
loadXML() - XML 문서를 불러온다.
saveXML() - 메모리에 올라가 있는 DOM Tree를 XML문서로 변환한다.
load() - 파일로 부터 XML문서를 불러온다.
save() - DOM Tree를 파일로 저장한다.
vaildate() - DTD를 기준으로 XML문서의 유효성을 검증한다.
schemaVaildate() - XML 스키마를 기준으로 XML 문서의 유효성을 검증한다.
schemaVaildateSource() - XML 스키마를 기준으로 XML 문서의 유효성을 검증한다.
createELement() - 새로운 앨리먼트 노드 생성
createTextNode() - 새로운 텍스트 노드 생성
createAttribute() - 새로운 속성 노드 생성
createElementNS() - 네임스페이스 영역을 갖는 앨리먼트 노드 생성
createAttributeNS() - 네임스케이스 영역을 갖는 속성 노드 생성
createComment() - 새로운 주석노드 생성
createCDATASection() - 새로운 CDATA섹션 노드를 생성한다.
getElementsByTagName() - 지정한 태그명을 갖는 앨리먼트의 노드 리스트 출력
getElementsByTagNameNS() - 특정한 네임스페이스 영역에서 지정한 태그명을 갖는 앨리먼트의 노드 리스트를 반환한다.
importNode - XML 문서에 붙일 특정노드를 가져온다.
여기까지 XML DOM 구문에 대한 설명이었으며 다음장에서는 XML SAX 구문에 대해서 알아보겠습니다. 사실 XML에 관련된 설명이 많이 부족할 수 있습니다. 제가 코딩하면서 자주 사용하지 않았기 때문이 아닐까 합니다. 설명중 오타 또는 오류가 발생되면 댓글, 쪽지 주시면 바로 수정해 놓겠습니다.

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

PHP SimpleXML 구문  (0) 2013.07.17
PHP XML DOM 구문  (0) 2013.07.16
PHP XML(DOM,SAX) 파싱 구문  (0) 2013.07.15
Posted by 진격의 파파

댓글을 달아 주세요

 

 

이번장에서는 PHP Mysql Delete 구문에 대해서 알아보겠습니다. 

 

delete는 테이블의 데이터를 지울수 있습니다.

 

기본구문

DELETE FROM table WHERE column = 'value'

// 기본적으로 지워야할 레코드값이 어떤것인지 where 조건에 써줍니다. 만약 where 절을 생략을 하고

 

DELETE FROM table

라고 실행을 할 경우 테이블의 모든 값이 사라지게 됩니다.

 

PHP에서 어떻게 실행되는지 알아보겠습니다. mysqli_query 함수를 사용해야 하는것은 알고 계실거라 생각합니다.

 

 user_name

age 

 park

33 

 kim

34 

 song

44 

 

위와 같이 구성된 persons 테이블이 있다고 가정하고 관련예제를 만들어보겠습니다.

 

관련예제

<?php
$conn = mysqli_connect("localhost","user_id","user_pwd","test_db");  // 데이터베이스 연결

if (mysqli_connect_errno())  {
  echo "MySQL 연결 오류 : " . mysqli_connect_error();
}

mysqli_query($conn,"DELETE FROM Persons WHERE user_name = 'song'");

// Persons테이블에서 user_name 이 song의 값을 가진 레코드를 삭제함

mysqli_close($conn);
?>

// 주석으로 설명을 달아놓았듯이 user_name 의 값중에서 song이라는 값을 가진 레코드를 삭제하라는 의미입니다. 만약 kim을 삭제하고 싶을경우 user_name = 'kim' 이라고 명령을 해주면 되겠죠.

 user_name

age 

 park

33 

 kim

34 

// persons 테이블을 살펴보면 위와같이 song의 값이 지워진것을 확인할 수 있습니다.

 

만약 테이블 자체를 삭제하고자 할 경우에는 DROP table persons 를 사용하면 됩니다. 그럼 데이터베이스에서 persons 테이블이 삭제됩니다. 그리고 위에서 설명했듯이 테이블의 내용을 지울때는 delete from persons 라고 명령하면 됩니다.

 

여기까지 PHP Mysql 데이터베이스에 관해서 포스팅을 마치고 다음 포스팅에서는 간단하게 PHP XML에 대해서 알아보겠습니다.

혹시라도 PHP 데이터베이스에 관해서 궁금한 사항이 있으면 댓글,쪽지 남겨주시면 제가 아는 한도내에서 성심껏 답변드리겠습니다.

 

그리고 중간에 오타, 오류가 발생된다면 이것도 댓글, 쪽지 남겨주시면 바로바로 수정해놓겠습니다. ^^

이렇게 미천한 글에 대해서 읽어봐주시는 방문자분들 감사합니다 ^^

 

 

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

PHP Mysql delete 구문  (2) 2013.07.12
PHP Mysql Update 구문  (1) 2013.07.11
PHP MySQL Order By(정열) 구문  (0) 2013.07.10
PHP Mysql Where 구문  (0) 2013.07.09
PHP Mysql Select 구문  (0) 2013.07.08
PHP Mysql insert into 구문  (0) 2013.07.05
Posted by 진격의 파파

댓글을 달아 주세요

  1. 제로 2015.02.19 23:38  댓글주소  수정/삭제  댓글쓰기

    이렇게 친절하고 알기쉽게 알려주시다니...데이터베이스는 처음 건드리는거라 막막했는데...너무 감사합니다!

  2. 진격의 파파 2015.02.25 11:33 신고  댓글주소  수정/삭제  댓글쓰기

    넵 미흡하지만 도움이 되었기를 바랍니다. ^^

 

PHP 의 데이터베이스 연결방식은 기존방식(mysql_connect)과 PHP 5 버전의 신규방식(mysqli_connect) 이렇게 두 가지로 나뉘어 집니다.

 

 

저는 사실 기존방식으로 지금까지 코딩을 해왔는데 신규연결방식이 훨씬더 안정적이고, 빠르며, 보안이 더 잘되어 있습니다.

 

 

그래서 PHP 5 업그레이드 이후로 새로나오는 PHP 책들을 살펴보면 신규방식인 mysqli_connect 함수를 사용하여 데이터베이스를 연결하는걸 볼 수 있을 겁니다.

 

 

PHP 5 업그레이드 중에서 가장 중요한 점이 MySQLi (MySQL Improved Extension) 이 아닐까 생각합니다.

 

 

일단 기존연결 방식과 신규연결 방식 둘다 설명하겠습니다. 하지만 이제부터 PHP 를 시작하는 분들 그리고 PHP 5를 이용하는 분들 이라면 Mysqli_connect 함수를 이용하길 추천합니다.

 

 

기존연결 방식

<?
$db_host = "localhost"; // 호스트네임(IP 값으로도 가능)
$db_user = "root"; // 사용자 아이디값(root는 최상위 아이디 이며, 데이터베이스마다 별도 설정 가능합니다)
$db_passwd = "test1234"; // 사용자 비밀번호
$db_name = "test"; // 사용할 데이터베이스 이름

$conn = mysql_connect($db_host,$db_user,$db_passwd) or die ("데이터베이스 연결에 실패하였습니다!");

mysql_select_db($db_name, $conn); // DB 선택

// 데이터베이스를 연결합니다.
?>

// 보다시피 기존연결 방식은 mysql_connect를 사용합니다.

 

 

 

PHP 5 신규연결 방식

<?php
$db_host = "localhost";
$db_user = "root";
$db_passwd = "test1234";
$db_name = "test";
$conn = mysqli_connect($db_host,$db_user,$db_passwd,$db_name);

if (mysqli_connect_errno($conn)) {
echo "데이터베이스 연결 실패: " . mysqli_connect_error();
} else {
echo "성공~!!!";
}
?>

// 별다른 차이점은 없습니다. 단지 mysql_connect 함수를 쓰느냐 mysqli_connect 함수를 쓰느냐 인데 위에서 설명했듯이 속도, 보안적인 측면에서 mysqli 함수가 한수 위라 볼수 있습니다. mysqli 는 mysql에 비해 속도가 작게는 2배에서 크게는 40배까지 차이가 납니다. 그래서 PHP 5가 지원되는 플랫폼이라면 당연히 mysqli를 사용하는게 효율적이겠죠.

 

 

이번장에서는 간단하게 데이터베이스 연결에 관해서 알아보았는데, 다음장에선 PHP 코딩으로 데이터베이스 생성 및 테이블 생성에 관해 포스팅 하겠습니다.

 

 

요즘 정신이 없어서 제가 오타나 실수가 나올수 있는데 너그럽게 양해해 주시고 바로 댓글, 쪽지 주면 수정해놓겠습니다.

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

PHP Mysql Where 구문  (0) 2013.07.09
PHP Mysql Select 구문  (0) 2013.07.08
PHP Mysql insert into 구문  (0) 2013.07.05
PHP 데이터베이스 및 테이블 만들기  (5) 2013.07.04
PHP Mysql Connect(PHP 데이터베이스 연동)  (4) 2013.07.03
PHP MySQL 소개  (0) 2013.07.02
Posted by 진격의 파파

댓글을 달아 주세요

  1. 인절미 2016.03.10 22:08  댓글주소  수정/삭제  댓글쓰기

    정말 감사합니다 ^^

  2. 인절미 2016.03.10 22:08  댓글주소  수정/삭제  댓글쓰기

    정말 감사합니다 ^^

  3. 초롱초롱 2016.08.29 06:59  댓글주소  수정/삭제  댓글쓰기

    감사합니다 한참을 몇시간째 헤메다 이제 막 성공했네요 ^^

  4. 오해윤 2016.11.02 03:22  댓글주소  수정/삭제  댓글쓰기

    핵심을 알려주시어 감사드립니다.

 

이번장에선 PHP email 구문에 대해서 알아보겠습니다.

 

우선 email을 이용하기 위해선 25번 포트가 열려 있어야 하며, SMTP 서버가 설치되어 있어야 하고

php.ini 의 설정에

SMTP = localhost

smtp_port = 25

sendmail_from = me@example.com

보통은 위처럼 설정이 되어 있는데 만약 sendmail_from에 주석처리가 되어 있을경우 주석을 풀고 사용할 이메일을 적어주고 아파치를 재시작하면 됩니다. 만약 그렇지 않다면

"Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()" 같은 에러가 발생할 것입니다.

 

그럼 모두 셋팅이 되었다는 가정하에 설명하겠습니다.

php email의 기본문법은

mail(to,subject,message,headers,parameters)

입니다.

to : 이메일 받을 사용자 설정

subject : 이메일의 제목을 설정

message : 이메일의 내용을 설정

headers : 선택사항이며 참조/숨은참도등의 추가 설정

parameters : 선택 사항이며, sendmail 프로그램 추가 매개 변수를 지정

 

간단한 구문
<?php
$to = "
user@example.com";
$subject = "이메일 테스트";
$message = "안녕하세요!! 간단한 이메일 테스트 입니다.";
$from = "
test@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>

// 위 처럼 간단하게 이메일 보내기 테스트를 할 수 있습니다.

 

 

그리고 form을 이용하여 이메일 보내기

---------------- mail.php ---------------------

<html>
<body>
<?php
if (isset($_REQUEST['email'])) { // 만약 이메일값이 있으면 아래 구문을 실행
//send email
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail("
user@example.com", $subject, $message, "From:" . $email);
echo "정상적으로 이메일을 보냈습니다.";
} else { // 만약 이메일 값이 없으면 아래 구문을 실행
echo "<form method='post' action='mail.php'> // 현재 페이지로 넘김
Email: <input name='email' type='text'><br>
Subject: <input name='subject' type='text'><br>
Message:<br>
<textarea name='message' rows='15' cols='40'>
</textarea><br>
<input type='submit'>
</form>";
}
?>
</body>
</html>

// 폼 형식을 이용하여 네이버, 구글, 다음등의 메일 형식과 조금이라도 비슷하게 하여 메일을 보낼수 있습니다. 물론 포털사이트들의 메일보내는 기능은 매우 복잡하지만 모두 시작은 이렇게 기본부터 출발했다는것을 기억하기 바랍니다.

 

지금까지 간단하게 이메일에 보내기에 대해서 알아보았는데 기본중의 기본을 설명한것입니다. 좀더 응용하기 위해선 인터넷도 많이 찾아보고 오픈소스등도 참조하여 응용을 많이 해보기 바랍니다.

포스팅중에 오타 또는 오류가 있을경우 쪽지, 댓글 남겨주시면 바로 수정하겠습니다.

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

PHP Error 관련  (0) 2013.07.01
PHP Email 구문  (0) 2013.06.28
PHP Sessions 구문  (0) 2013.06.27
PHP cookies 구문  (0) 2013.06.26
PHP file upload 구문  (2) 2013.06.25
PHP file 처리 함수  (0) 2013.06.24
Posted by 진격의 파파

댓글을 달아 주세요

 

 

이전 포스팅에서 쿠키에 대해서 설명을 했는데 오늘 포스팅에서는 세션에 대해서 설명하겠습니다.

 

세션과 쿠키의 차이점

세션과 쿠키와의 차이점은 쿠키는 방문자가 해당 사이트에 접속했을 때 방문자의 컴퓨터에 모든 사용자데 이터를 저장하지만, 세션의 경우는 사용자데이터는 서버에 저장하고 사용자 시스템에는 이 데이터에 접근 할 수 있는 식별자만 저장합니다.

이러한 점에서 세션이 쿠키보다 보안성이 좋다고 할 수 있습니다.

또한 쿠키의 경우에는 서버의 자원을 전혀 사용하지 않지만, 세션의 경우 서버에 저장이 되기 때문에 서버의 자원을 필수적으로 사용하게 됩니다. 그리고 쿠키의 경우 저장 시 쿠키가 만료가 되는 시점을 설정 해줄 수 있습니다.

그럼 이제 세션의 사용방법에 대해서 설명하겠습니다.

 

 

세션은 문서가 시작되기 전에 먼저 선언을 해주어야 합니다. 예제를 보면 이해가 빠를 겁니다.

<?php session_start(); ?>
< html>
< body>
< /body>
< /html>

// 이렇게 구문이 시작되기 전에 먼저 <?php session_start(); ?> 이렇게 세션을 시작하겠다라고 선언을 합니다.

 

 

두 번째 예제를 더 살펴보겠습니다. 생성하는 방법은 쿠키에 비해 오히려 더 쉬울수 있습니다.

<?php
session_start();
// 세션 데이터 생성
$_SESSION['page_view'] = 1;
?>
<html>
<body>
<?php
// 불러온 세션 데이터 값
echo "PageView = ". $_SESSION['page_view'];
?>
</body>
</html>

// 주석에서 볼 수 있듯이 세션값을 생성하고 세션값을 가져오는 구문입니다. 출력되는 구문은 당연히

PageView = 1 이 출력 되겠죠

 

 

그럼 좀더 응용한 세 번째 예제를 살펴보겠습니다.

<?php
session_start();

if(isset($_SESSION['page_view'])) // 세션값이 있으면 + 1을 해주고
$_SESSION['page_view']=$_SESSION['page_view']+1;
else
$_SESSION['page_view']=1; // 세션값이 없으면 page_view의 값은 1
echo "pageView = ". $_SESSION['page_view'];
?>

// 주석을 보면 이해가 빠를 겁니다. 세션 page_view 의 값이 있으면 + 1을 하고 없으면 값이 1이 되는 구문입니다. 위 소스를 테스트 해보면 알겠지만 페이지를 새로고침 해보면 page_view의 값이 계속 증가되는것을 확인할 수 있습니다.

 

 

그리고 세션값의 삭제는 "unset" 과 "session_destroy();" 로 합니다.

unset 함수는 지정된 세션값을 삭제할 수 있습니다.

<?php
session_start();
if(isset($_SESSION['page_view']))
unset($_SESSION['page_view']);
?>

 

 

 session_destory() 함수는 만들어진 모든 세션을 삭제합니다.

<?php
session_destroy();
?>

 

 

여러가지 형태로 응용을 하다보면 금방 적응이 될듯합니다.

혹시 오타 또는 오류 발견시 댓글 또는 쪽지 주시면 바로 수정해 놓겠습니다.

다음장에서는 php email 에 대해서 포스팅하겠습니다.

 

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

PHP Error 관련  (0) 2013.07.01
PHP Email 구문  (0) 2013.06.28
PHP Sessions 구문  (0) 2013.06.27
PHP cookies 구문  (0) 2013.06.26
PHP file upload 구문  (2) 2013.06.25
PHP file 처리 함수  (0) 2013.06.24
Posted by 진격의 파파

댓글을 달아 주세요

 

저번장까지 PHP 배열(Array)의 관해서 설명하였고

이번장에서는 PHP Loop(반복문 : while, for, foreach)에 대해서 설명하겠습니다.

PHP 반복문에는 크게 While, For, Foreach 이렇게 3가지로 나뉘어집니다.

우선 while에 대해서 알아보겠습니다.

기본 문법

while (condition)
{
code to be executed;
}

// 처럼 사용됩니다. 관련예제를 보면 더 이해가 빠를듯합니다.

<?php
$i=1;
while($i<=5)

{
echo "숫자 : " . $i . "<br>";
$i++;
}
?>

// 딱 봤을때 감이 오시나요?

제일 처음 $i = 1 이라고 정의를 했습니다. 그리고 $i 가 5보다 작거나 같을때까지 $i++ 1씩 증가시키라는 의미죠.

그래서 1부터 5가 될때까지 5번을 반복하여 실행이 됩니다. 그리고 출력되는 내용은

숫자 : 1

숫자 : 2

숫자 : 3

숫자 : 4

숫자 : 5

처럼 나오게 됩니다.

그리고 while 구문중 do ~ while 구문도 있습니다. 하지만 저의 경험상 do ~ while 구문을 거의 써본적이 없는것 같아서 while 하나만 제대로 알아도 큰 무리 없을거라 생각됩니다.

For 구문에 대해서 알아보겠습니다.

기본문법

for (init; condition; increment)
{
code to be executed;
}

// 기본문법입니다. While 구문과 크게 다를게 없습니다. 관련예제를 살펴보겠습니다.

<?php
for ($i=1; $i<=5; $i++)
{
echo "숫자 : " . $i . "<br>";
}
?>

// while 구문과 큰 차이는 없지만 for 구문은 "for ()" 괄호안에 반복과 관련된 코딩이 들어갑니다.

$i=1; $i<=5; $i++ => $i를 1 부터 시작하여 5보다 작을때 까지 1씩 증가시키라는 명령입니다. 그 쓰임새를 기억하시기 바랍니다.

첫번째 $i=1; 세미콜론 찍어주고 두번째 $i <= 5; 어디까지 인지 정의를 하면서 다시 세미콜론을 찍어줍니다. 그리고 마지막 $i++ 증감연산자를 이용하여 증가를 할지 감소를 할지 명령을 합니다. 여기서 주의할 점은 증감연산자 다음에 세미콜론은 들어가지 않습니다. 기억하시기 바랍니다.

그리고 출력되는 내용은

숫자 : 1

숫자 : 2

숫자 : 3

숫자 : 4

숫자 : 5

// 처럼 while 구문과 동일한 명령을 하였기에 동일하게 나옵니다.

Foreach 구문에 대해서 알아보겠습니다.

기본문법

foreach ($array as $value)
{
code to be executed;
}

// 기본적 문법은 대부분 비슷하다라는 것을 느낄수 있나요? 그럼 충분합니다.

위 기본문법에서 보다시피 foreach 구문은 array에 들어있는 값을 가져올때 주로 사용되는 구문입니다.

array(배열)은 이전 포스팅에 설명했으니 참고 하기 바랍니다. 관련예제를 살펴보겠습니다.

<?php
$x=array("one","two","three");
foreach ($x as $value)
{
echo $value . "<br>";
}
?>

// 우선 변수 $x에 array("one","two","three") 을 담습니다.

그리고 기본문법에서 보면 ($array as $value) 표현법이 나옵니다. 이러한 기본문법 구문은 가볍게 외워주는게 좋습니다. while과 for 구문과 다르게 "as" 라는 것을 이용하여 배열값을 가져오게 됩니다.

foreach 에 array 의 변수값 $x 을 집어넣고 $value 변수를 설정한후 출력 명령문을 "{}" 대괄호 안에 집어 넣습니다.

$value 변수는 기본적으로 정해져 있는것이 아니기 때문에 독창적으로 설정해도 상관없습니다. 단, 출력문에 동일하게 변수값이 들어가야 합니다.

자 그럼 위 구문의 출력문은 어떻게 나오는지 짐작이 가나요.

one

two

three

// 처럼 나오게 됩니다. 실무에서 코딩을 하다보면 배열관련된 내용은 무궁무진하게 나옵니다. 그래서 덩달어 foreach 구문도 같이 붙어다닙니다.

While, For, Foreach 모두 두번, 세번 강조해도 지나치지 않습니다. 여기까지만 제가 포스팅한 내용을 모두 꼼꼼히 보았다면 PHP 50%이상을 마스터 한거라 감히 말할수 있겠습니다.

다음장에서는 PHP Function 에 관해 설명하겠습니다. 간략 설명드리면 PHP는 함수를 직접 만들어 사용할 수 있습니다. 그래서 다음장 설명 내용은 본인이 코딩을 하면서 필요한 함수를 직접 만드는 방법에 대해서 알아보겠습니다

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

PHP Form 구문  (1) 2013.06.17
PHP Function(함수)  (0) 2013.06.14
PHP 반복문(while, for, foreach)  (0) 2013.06.13
PHP Sorting Arrays(정렬 배열)  (0) 2013.06.12
PHP Array(배열) 문법  (0) 2013.06.11
PHP switch ~ case 구문  (0) 2013.06.10
Posted by 진격의 파파

댓글을 달아 주세요

 

 

이번장에서는 PHP 문법중 중요한 if ~ else에 관해서 알아보겠습니다.

모든 프로그래밍에서 기초가 되는 문법입니다.

일단 if 라는 뜻은 "만약" 이란 뜻을 가진건 모두 알거라 생각합니다. 대략 짐작이 오겠죠. "만약 ~ 라면 ~ 이다" 비교 문법입니다.

예를 들어서 "A"와 "B"가 같은지를 조사할 경우 if ("A" == "B") 라고 표현을 하겠죠. A와 B가 같나요?? 물론 틀립니다.

그럼 맞을땐 어떻게 하고 틀릴땐 어떻게 해라. 이런 표현은 어떻게 할까요?

if ("A" == "B") {

// A와 B가 같은지를 검사합니다.

} else {

// A와 B가 틀리면 이곳에 내용을 넣으면 됩니다.

}

php 예제를 통해 알아보겠습니다.

<?php
$num = 3;
if ($num < 4) {
echo "4보다 작습니다.";
} else {
echo "4보다 큽니다.";
}
?>

// 3이 4보다 작은지를 비교합니다. 3은 4보다 수가 작기 때문에 그래서 "4보다 작습니다"가 출력이 됩니다.

값을 비교할때 한가지 이상을 비교할경우도 많은데 그럴경우 if ~ else if ~ else if ~ else 로 표현을 합니다.

if ("A" == "B") {

// A와 B가 같은지 검사합니다.

} else if ("A" == "C" {

// A와 C가 같은지 검사합니다.

} else if ("A" == "D") {

// A와 D가 같은지 검사합니다.

} else {

// 이것도 저것도 아닐경우를 말합니다.

}

// 위 소스를 보면 A와 같은 곳은 한곳도 없기 때문에 마지막 else{ //내용 } 의 값이 나오게 됩니다.

제가 php 코딩을 수 년간 엄청나게 사용했던 구문이기도 합니다. 비슷한 구문으로 switch ~ case 구문이 있습니다. 이 구문과 관련되서는 다음장에서 설명하도록 하겠습니다. 예제를 만들어가며 연습을 해보시면 금방 감이 올듯 합니다.

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

PHP Array(배열) 문법  (0) 2013.06.11
PHP switch ~ case 구문  (0) 2013.06.10
PHP IF ~ ELSE 문  (0) 2013.06.07
PHP 연산자  (0) 2013.06.05
PHP String (문자열 변수)  (2) 2013.06.04
PHP 변수에 대하여  (2) 2013.05.31
Posted by 진격의 파파

댓글을 달아 주세요

PHP 연산자

PHP/PHP Basic 2013.06.05 11:33

 

 

이번장에서는 PHP 연산자에 대해서 알아보겠습니다.

고등학교 시절 배웠던 연산자를 생각하시면 됩니다.

 

 

PHP 산수 연산자(산수! 오랜만에 들어보는 ㅎㅎ)

산수 연산자의 종류에는

"+" 더하기

"-" 빼기

"*" 곱하기

"/" 나누기

"%" 나머지 (5%2 = 1 요렇게 나머지를 표시합니다.)

등이 있습니다.

 

 

PHP 할당 연산자

할당이란 말이 복잡하지 뭐 별거 없습니다.

x = y 말그대로 x를 y에 할당했다는 의미입니다.

x += y // x = x + y

x -= y // x = x - y

x *= y // x = x * y

x /= y // x = x * y

x %= y // x = x % y

a .= b // a = a . b

 

 

PHP 증감 연산자

++x // 출력전에 x값을 1씩 증가시킵니다.

--x // 출력전에 x값을 1씩 감소시킵니다.

x++ // 출력후에 x값을 1씩 증가시킵니다.

x-- // 출력후에 x값을 1씩 감소시킵니다.

 

 

PHP 비교 연산자

x == y // x와 y의 값이 같은지 비교합니다. 4 = 4 는 true, 4 = 5 false 를 반환합니다.

x === y // x와 y의 값이 같은 형식인지 비교합니다. 5 === "5" 일경우 false를 반환합니다.

x != y // x와 y의 값이 서로 다른지를 비교합니다. 4 != 5 true를 반환합니다.

x <> y // 위 x != y와 같은 의미입니다. 서로 다른지를 비교합니다. 4 <> 5 true를 반환합니다.

x !== y // x와 y의 값이 서로 다른 형식인지를 비교합니다. 4 !== 5 true를 반환합니다.

x > y // x가 y의 값보다 큰지를 비교합니다. 5 > 4 true를 반환합니다.

x < y // x가 y의 값보다 작은지를 비교합니다. 4 < 5 true를 반환합니다.

x >= y // x가 y의 값보다 크거나 같은지를 비교합니다. 5 >= 4 true를 반환합니다.

x <= y // x가 y의 값보다 작거나 같은지를 비교합니다. 4 <= 5 true를 반환합니다.

 

PHP 논리 연산자

x and y // 교집합이라고 생각하면 됩니다.

x=6
y=3
(x < 10 and y > 1) true 를 반환합니다.

x or y // 합집합이라고 생각하면 됩니다.

x=6
y=3
(x==6 or y==5) true 를 반환합니다.

x && y // and와 같은 의미입니다.

x=6
y=3
(x < 10 && y > 1) returns true

x || y // or와 같은 의미입니다.

x=6
y=3
(x==5 || y==5) returns false

! x // x가 값이 맞는지 틀린지를 비교합니다. 틀리면 true

x=6
y=3
!(x==y) 값이 서로 틀리기 때문에 true 를 반환합니다.

 

 

PHP 배열 연산자

x + y // x와 y의 합집합

x == y // x와 y가 동일한 키/값 쌍을 가지면 true

x === y // x와 y가 동일한 키/값 쌍을 동일한 순서와 동일한 자료형으로 가지면 true

x != y // x와 y가 같지 않으면 true

x <> y // x와 y가 같지 않으면 true

x !== y // x와 y가 같은 형식이 아니면 true

 

 

코딩을 하면서 적응이 되긴 하겠지만 크게 어려운 부분은 없을거라 생각합니다. 고등학교, 대학때 쓰던 연산자와 틀린 부분이 있긴한데 그런간 간단하게 외워 주면 됩니다. 그리고 연산자는 하다보면 자연적으로 익숙해지니 크게 두려움을 느낄 필요는 없을듯합니다. ㅎ

 

다음장에서는 if ~ else 에 대해서 알아볼텐데 이것만 알아도 php 코딩을 할때 엄청난 도움이 됩니다. 아무튼 다음장에서 다시 설명하겠습니다.

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

PHP switch ~ case 구문  (0) 2013.06.10
PHP IF ~ ELSE 문  (0) 2013.06.07
PHP 연산자  (0) 2013.06.05
PHP String (문자열 변수)  (2) 2013.06.04
PHP 변수에 대하여  (2) 2013.05.31
PHP Syntax  (0) 2013.05.30
Posted by 진격의 파파

댓글을 달아 주세요

 

지난번 포스팅에선 php 변수에 대해서 알아보았습니다. 이번장에서는 조금 더 나아가 변수중에서 string에 대해서 알아보겠습니다. 흔히 문자열 변수라고 칭합니다.

문자열 변수는 직접 생성, 조작할 수 있습니다. 예를 들어 $txt 라는 변수를 만들고 내용에 "Park's의 블로그" 이렇게 내용이 출력됩니다.

<?php
$txt="Park's의 블로그";
echo $txt;
?>

문자열 변수를 할당할때 주의해야 할 점은 큰따옴표 또는 작은따옴표를 사용하여 생성합니다. 이에 대한 자세한 설명은 이전 포스팅에 있으니 참고 바랍니다.

 

 

PHP 연결 연산자

PHP에서 하나의 문자열 연산자가 있습니다.
연결 연산자 (.) 두 개의 문자열 값을 연결하는 데 사용됩니다.

아래의 예제는 두 개의 문자열 변수를 연결하는 방법을 보여줍니다.

<?php
$txt1="Park's의 블로그";
$txt2="누군가에게 도움이 되는 블로그가 되자!";
echo $txt1 . " " . $txt2;
?>

// 연결될때 ." ". 이렇게 연결됨을 알 수 있습니다.

위 구문이 출력이 되면 "Park's의 블로그 누군가에게 도움이 되는 블로그가 되자!" 이렇게 출력이 되겠죠.

만약 echo $txt1 . $txt2; // 이렇게 연결이 되었다면 "Park's의 블로그누군가에게 도움이 되는 블로그가 되자!" 처럼 출력이 되는데 틀린점을 찾으셨나요?? 바로 두 문장사이의 띄어쓰기가 있고 없고의 차이입니다. " " 는 공백값이 추가되어 연결됨을 의미합니다.

PHP strlen() 함수

strlen() 함수는 문자열의 길이를 반환하는 역할을 합니다.

<?php
echo strlen("Park's의 블로그!");
?>

위 구문을 실행하면 "16"이 나옵니다. 영어와 특수문자, 띄어쓰기등은 기본적으로 1바이트 이며, 한글은 2바이트 입니다. 그래서 위 구문의 총 문자열 길이는

p=1,

a=1,

r=1,

k=1,

'=1,

s=1,

의=2,

'띄어쓰기'=1,

블=2,

로=2,

그=2,

!=1

합이 총 16이 됩니다. strlen 함수는 문자열의 길이를 제어할때 사용하기 때문에 매우 자주 쓰이는 함수 입니다.

 

 

PHP strpos() 함수

strpos() 함수는 문자열 중에서 문자 또는 특정단어가 있는지를 검사할때 사용합니다.

특정단어가 있는지 여부를 체크하여 그 첫번째 위치의 문자위치를 반환합니다. 모든 문자열의 첫번째 시작점은 0부터 시작한다는것을 미리 알아두시기 바랍니다.

<?php
echo strpos("Park's의 블로그","로");
?>

만약 위처럼 구문이 있을경우 "로" 와 같은 단어가 있는지 없는지를 체크하여 "11" 이라는 값을 반환합니다.

p=0,

a=1,

r=2,

k=3,

'=4,

s=5,

의=6,7,

'띄어쓰기'=8,

블=9,10,

로=11,12,

그=13,14,

!=15

글자 "로" 부분의 시작점이 11인것을 알 수 있습니다. 이 함수는 해당 내용에 어떤 내용이 있는지 검사할 수 있기 때문에 저는 스팸차단 같은 소스에서 종종 사용합니다.

예제 2

<?

$categoryName = "청주,내덕동,율량동,사천동";

$searchName = "내덕동";

if(strpos($categoryName, $searchName) !== false) {

echo "$searchName 단어가 포함되어 있습니다";

} else {

echo "$searchName 단어가 없군요.";

}

?>

위의 내용은 $categoryName 에 $searchName 이 있는가 검사하는 소스입니다. 이 함수도 자주 사용되는 함수이기에 알아두시면 유용하게 사용하게 될듯합니다.

 

다음장에서는 PHP Operators(연산자 +, -, /, *) 등에 대해서 알아보겠습니다.

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

PHP IF ~ ELSE 문  (0) 2013.06.07
PHP 연산자  (0) 2013.06.05
PHP String (문자열 변수)  (2) 2013.06.04
PHP 변수에 대하여  (2) 2013.05.31
PHP Syntax  (0) 2013.05.30
php 소개  (0) 2013.05.29
Posted by 진격의 파파

댓글을 달아 주세요

  1. jnk 2013.07.16 13:27  댓글주소  수정/삭제  댓글쓰기

    잘 배웠습니다.
    근데 저는 왜
    <?php
    echo strlen("Park's의 블로그!";);
    ?>
    가 20이 나올까요?

  2. 진격의 파파 2013.07.16 16:12 신고  댓글주소  수정/삭제  댓글쓰기

    테스트 하다 한참 헤맸네요.
    저는 계속 16이 나와서 ^^;;

    확인해보니 jnk님의 파일 인코딩은 utf-8로 되어 있어서 그런듯 합니다.
    "한국어" 환경에서 글자 수 체크
    한글은 2byte 로 체크 됩니다.
    <?php echo strlen("한글";);?> // 4 값이 출력되며,

    "UTF-8" 환경에서 글자 수 체크
    한글은 3byte 로 체크 됩니다.
    <?php echo strlen("한글";);?> // 6 값이 출력됩니다.

 

이번장에서는 php variables(변수)에 대해서 알아보겠습니다.

변수란 말그대로 "변하는 수"입니다.

php변수는 "$"를 붙여서 생성합니다.

그리고 변수를 설정할때 알기쉽게 $name 이렇게 표기를 하는데 $name 무슨뜻으로 만든 변수일까요?

짐작하셨겠지만 "이름"의 변수를 뜻하겠죠.

 

변수의 타입(type)에는 진리값, 정수, 실수, 문자열, 배열, 객체, 리소스, 널 이렇게 총 8가지의 변수형들이 있습니다.

 

변수의 종류가 이렇게 많은 이유는 메모리를 효율적으로 사용하기 위함입니다. 예를 들어 변수하나에 숫자 몇자리가 들어간다고 가정했을경우 이 변수 하나에 1메가바이트의 공간을 줄 필요가 없겠죠.

변수의 타입에 대해선 다음장에서 설명하기로 하고 일단 넘어가겠습니다.

<?php
$x=3;
$y=4;
$z=$x+$y;
echo $z;
?>

위 예제를 실행하면

7

이 나옵니다.

 

$x, $y, $z 이렇게 변수를 생성하였고

$x 에 3이라는 값을 넣었습니다. 그리고 $y에는 4라는 값을 넣었습니다.

그리고 $z 는 $x 와 $y를 합하였습니다. 그래서 echo $z의 값은 3과 4가 더해진 7 이라는 값이 나오게 됩니다.

그리고 $p = "park's 블로그"; 처럼 변수를 생성할 수 있습니다. 숫자와 다르게 문자가 들어갈 경우 "" 쌍따옴표가 붙습니다. 문자의 표현 방법으로는 '' 처럼 작은 따옴표로도 표현 가능합니다.

쌍따옴표와, 작은따옴표의 차이점은 작은 따옴표 내부에 쓰여진 특수문자와 변수는 허용되지 않습니다. 그러나 큰 따옴표는 모두 허용됩니다.

 

예를 들어

<? echo '특수문자 \n 변수값 $name'; ?>

이렇게 했을때 나오는 문구도 똑같이

"특수문자 \n 변수값 $name"

나오지만

<? echo "특수문자 \n 변수값 $name"; ?>

이렇게 큰 따옴표로 감싸게 되면

"특수문자

변수값 OOO "

이렇게 특수문자와 변수값이 적용된 모습으로 나옵니다.

 

일단 변수에 대해선 요정도 정리하기로 하겠습니다. 크게 어려운건 없죠? 일단 변수 선언할때 "$" 을 붙인다는 것을 알아주시고 변수값에 문자가 들어갈경우 큰따옴표 또는 작은 따옴표를 붙인다. 그러나 큰따옴표와 작은따옴표는 차이가 있다 이정도만 알아두시면 되겠습니다.

 

예전에 php 공부할때 책을 보면서 변수관련 내용에서 배열, 함수, 전역변수 등등 어려운 부분을 빨리 접하다 보니 프로그램이 더더욱 어렵게 느껴지더라구요. 그래서 처음엔 아주 쉽게 접근해서 차근차근 어려운 단계로 접근해야 하지 않을까 해서 변수에 대한 설명은 요정도로 끝내고 차근차근 접근하겠습니다.

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

PHP IF ~ ELSE 문  (0) 2013.06.07
PHP 연산자  (0) 2013.06.05
PHP String (문자열 변수)  (2) 2013.06.04
PHP 변수에 대하여  (2) 2013.05.31
PHP Syntax  (0) 2013.05.30
php 소개  (0) 2013.05.29
Posted by 진격의 파파

댓글을 달아 주세요

  1. jnk 2013.07.16 13:20  댓글주소  수정/삭제  댓글쓰기

    <? echo "특수문자 \n 변수값 $name"; ?>
    은 개행이 안 먹히던데 왜 안될까요?
    그리고 <br /> 말고 \n 써야 될 일이 있나요?

  2. 진격의 파파 2013.07.16 15:52 신고  댓글주소  수정/삭제  댓글쓰기

    혹시 <? echo "특수문자 \n 변수값 $name"; ?> 내용이 있는 구문의 확장자가 html 인가요 아니면 php 인가요? 만약 html 구문이라면 줄바꿈이 되지 않을 것입니다. 확장자를 OOO.php 라고 하시면 줄바꿈이 될것이고 만약 html에서 표현을 한다라면 <br />을 쓰면 됩니다~

    실제 코딩을 하다 보면 html 태그가 안먹히는 경우가 발생하는데 그때 \n 을 사용하여 줄바꿈을 할 수 있습니다. 그래서 <br> 이나 \n 둘다 알아두시는게 좋지않을까 생각합니다 ^^