• 검색 결과가 없습니다.

웹 연동 기술

N/A
N/A
Protected

Academic year: 2021

Share "웹 연동 기술"

Copied!
21
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

PHP 웹 프로그래밍

(PHP Web Programming)

웹 연동 기술

문양세

강원대학교 IT 대학 컴퓨터과학전공

(2)

URL (Uniform Resource Locator)

프로토콜 , 호스트 , 포트 , 경로 , 비밀번호 , User 등의 정보를 포함

예 . http://kim:[email protected]:80/doc/index.html

URL 을 속성별로 분리하고자 할 경우

parse_url() 함수 사용

분리한 결과는 array 에 저장 ( 리턴 )

parse_url

URL 분석 (1/2)

웹 연동 기술

array parse_url (string url)

(3)

Web Programming by Yang-Sae Moon

Page 3

URL 분석 (2/2)

웹 연동 기술

<?PHP

$parse_arr = parse_url (“http://kim:[email protected]:80/doc/index.html”);

print $parse_arr[host].”<br>”;

print $parse_arr[port].”<br>”;

print $parse_arr[path].”<br>”;

print $parse_arr[user].”<br>”;

print $parse_arr[pass].”<br>”;

?>

예제 (parse_url.php)

(4)

다른 홈페이지의 문서를 읽어오거나 URL 문서에서 필요한 정보를 추출 하는 방법

fopen() 함수를 이용하여 매개 변수 위치에 URL 을 삽입

홈페이지의 문서를 읽어와서 출력 (readsite1.php)

URL 내용 읽어오기 (1/4)

웹 연동 기술

<?PHP

$fp = fopen (“http://www.donga.com/”,”r”)

or die (“ 요청하신 페이지를 읽어올 수 없습니다 .”);

while ($line = fgets($fp, 1024)) {

print $line;

}

fclose ($fp);

?>

(5)

Web Programming by Yang-Sae Moon

Page 5

다음과 같은 오류가 발생한다면…

“php.ini” 파일에서 다음과 같이 수정 (Off  On) 해 주세요 .

다음 장 계속 ->

만일 readsite1.php 가 잘 동작치 않으면

(1/2)

웹 연동 기술

(6)

아파치를 재시작 (stop  start) 합니다 .

만일 readsite1.php 가 잘 동작치 않으면

(2/2)

(7)

Web Programming by Yang-Sae Moon

Page 7

수행 결과 (readsite1.php)

URL 내용 읽어오기 (2/4)

웹 연동 기술

(8)

다른 방법

fopen() 및 fgets() 대신에 readfile() 함수를 사용

readfile() 함수는 파일의 내용을 읽어서 바로 출력하기 때문에 별도의 읽기 및 출력 과정 이 필요하지 않음

주의점 : 파일의 이름을 넘겨주는 파라미터에 반드시 사용하는 프로토콜 (http://) 을 지 정하는 부분이 들어가야 함

예제 (readsite2.php)

URL 내용 읽어오기 (3/4)

웹 연동 기술

<?PHP

readfile (“http://www.daum.net/”);

?>

(9)

Web Programming by Yang-Sae Moon

Page 9

수행 결과 (readsite2.php)

URL 내용 읽어오기 (4/4)

웹 연동 기술

(10)

특정 사이트의 문서에 포함되어 있는 링크만을 읽어올 경우

<A HREF> 태그로 시작되는 부분을 읽어옴 ( 예 : <A HREF=“http://cs.kangwon.ac.kr> ..)

정규 표현식을 사용하여 태그를 찾음

개념적 표현 형태 :

<, 임의의 문자들 , a, 임의의 문자들 , href=, 임의의 문자들 , >, 임의의 문자들 , </, 임의의 문자들 , a, 임의의 문자들 , > 순

정규 표현식 형태 : “/<.*a.*href=.*>.*<\/.*a.*>/”

링크 (link) 읽어오기 (1/3)

웹 연동 기술

(11)

Web Programming by Yang-Sae Moon

Page 11

예제 (parse_link.php)

링크 (link) 읽어오기 (2/3)

웹 연동 기술

<?PHP

$fp = fopen (“http://www.hani.co.kr/”, ”r”) or die (“URL 을 열수 없습니다 .”);

while ($str = fgets ($fp, 1024)) {

if (preg_match_all (‘/<.*a.*href=.*>.*<\/.*a.*>/’, $str, $url_str)) {

foreach ($url_str[0] as $match) print $match.”<br>”;

} }

?>

 preg_match_all(string pattern, string subject, array matches):

스트링 subject 에서 주어진 pattern 을 모두 찾아서 배열 matches 에 저장하는 함수 첫번째 매치가 배열 $matches[0] 에 저장됨 (c.f., $matches[1] 에는 서브 패턴이 저장됨 )

(12)

수행 결과

링크 (link) 읽어오기 (3/3)

웹 연동 기술

(13)

Web Programming by Yang-Sae Moon

Page 13

예상 문제점

특수문자의 처리

예를 들어 ‘ <’ 와 ‘ >’ 사이에 있는 문자는 HTML 에서 태그로 인식  변환이 필요

예제 (linkexample.php)

일반 텍스트 문서  HTML 문서 (1/6)

웹 연동 기술

<?PHP

$text_array = file (“example.txt”) foreach ($text_array as $line) {

print $line;

}

?>

grapes lemon <pear>

mango <orange> apple grapes lemon <pear>

mango <orange> apple

(14)

출력 결과

<pear> 와 <orange> 가 출력되지 않았음

 why? HTML 에서 태그로 인식되었음

일반 텍스트 문서  HTML 문서 (2/6)

웹 연동 기술

(15)

Web Programming by Yang-Sae Moon

Page 15

HTML 에서는 ,

HTML 태그나 “엔터” 문자를 브라우저에서 인식하지 못함

이 문제점을 해결하기 위해서는 각 문자를 다른 기호로 나타내어야 함

− 공백 문자  &nbsp;

− <  &lt; (lt means “less than”)

− >  &gt; (gt means “greater than”)

HTML 에서 사용되는 엔티티들을 특수한 문자로 바꿀 경우

htmlentities() 사용 (c.f., 유사한 함수로 htmlspecialchars() 사용 )

일반 텍스트 문서  HTML 문서 (3/6)

웹 연동 기술

(16)

htmlentities

string: HTML 로 변환하고자 하는 문자열

quote_style: 따옴표 (“ 와 ‘ ) 에 대한 처리 방법 ( 아래 링크 참조 )

charset: 문자열의 문자 집합

참조 :

http://php.net/manual/kr/function.htmlentities.php

일반 텍스트 문서  HTML 문서 (4/6)

웹 연동 기술

string htmlentities (string string [,int quote_style [,string charset]]))

(17)

Web Programming by Yang-Sae Moon

Page 17

nl2br

“ 엔터” 문자의 변환 (new line(“\n”) 을 “ <br>” 로 변환하는 함수 )

수정된 예제 (linkexample2.php)

일반 텍스트 문서  HTML 문서 (5/6)

웹 연동 기술

string nl2br (string string)

<?PHP

$text_array = file (“example.txt”) foreach ($text_array as $line) {

print nl2br (htmlentities ($line));

}

?>

 file(): 파일 전체를 읽어서 배열에 저장하는 함수

(18)

수행 결과

일반 텍스트 문서  HTML 문서 (6/6)

웹 연동 기술

(19)

Web Programming by Yang-Sae Moon

Page 19

HTML 문서를 일반 문서로 바꿀 경우

HTML 문서의 모든 태그를 삭제

<br> 을 “엔터”로 변환

HTML 태그를 삭제하는 방법

strip_tags() 함수를 사용

<br> 을 엔터 문자로 변환하는 함수는 없음  정규 표현식 이용하여 변환

strip_tags: HTML 태그를 제거함 (http://php.net/manual/kr/function.strip-tags.php)

HTML 문서  일반 텍스트 문서 (1/2)

웹 연동 기술

string strip_tags (string str [, string allowable_tags])

(20)

예제 (html2txt.php)

HTML 문서  일반 텍스트 문서 (2/2)

웹 연동 기술

<?PHP

$html_file = file (“htmlexample.html”);

$fp = fopen (“destfile.txt”, “w”);

foreach ($html_file as $line) {

$line = eregi_replace (“<br>”, “\n”, $line);

$line = strip_tags ($line);

fputs ($fp, $line);

}

fclose ($fp);

?>

<html>

<body>

grapes lemon pear<br> mango orange apple

</body>

</html>

<html>

<body>

grapes lemon pear<br> mango orange apple

</body>

</html>

 eregi_replace(): 주어진 패턴을 주어진 스트링으로 변환 ( 예 : <br>  “\n”)

grapes lemon pear

mango orange apple

grapes lemon pear

mango orange apple

(21)

Web Programming by Yang-Sae Moon

Page 21

Homework #10 ( 실습 #9)

웹 연동 기술

참조

관련 문서

강원대학교 공학대학 자동차공학과 담당교수 박우철... 강원대학교 공학대학 자동차공학과 담당교수

5G+ 기술개발의 해외동향 시사점 ● [미국] 국립과학재단은 첨단무선망플랫폼PWAR 인프라/연구개발/서비스를 추진함 - PWAR 프로젝트의 경우 국가연구소, 대학, 산업체가 참여하는 산학연 연합체를 통해 4개의 지역 클러스터 기반의 인프라를 구축하여 기술개발과 적용 및 서비스를 동시에 추진함 ▶ [시사점] 산학연과

국내의 교수, 박사 및 대학, 출연연 등 기술을 공급하는 기술 공급자의 경 우, 지나치게 수동적이고, 기술에 확신이 없는 경우가 많으며, 자기 기술을 정확히 이해하지 못하는

Hollamby 연구원 등은 오사카 대학(大阪大学), 산업 기술종합연구소(AIST), 폴란드 바 르샤바 공대, 네덜란드 아인트호벤 공과 대학, 영국 브리스톨 대학, 독일 맥스

이렇게 표시 되는 웹 페이지의 내용을 시각장애인이 손쉽게 읽고 필요한 작업을 수행할 수 있도록 하기 위해 가상 커서라는 별도의 사용자 인터페이스를 제공..

**강원대학교 대학원 기계메카트로닉스공학과 ( ki mhk@kangwon. kr ) ,. ***강원대학교 기계메카트로닉스공학과 조교수,공학박사( pae k@kangwon.

 만일 link_identifier 가 없으면 자동으로 이전에 열렸던 link_identifier 를 이용하여 데이 터베이스를 연결함. MySQL 사용법

회의에는 관련분야 대학, 연구소 및 산업체에서 참석 하여 고견을 주셨으며 지속적으로 많은 조언을 받고 있다. 개념 제시와 시작기 제작, 시스템 보완 등을 거쳐