Download presentation
Presentation is loading. Please wait.
1
웹 연동 기술 Yang-Sae Moon Department of Computer Science
Kangwon National University, Korea
2
URL 분석 (1/2) URL (Uniform Resource Locator) URL을 속성별로 분리하고자 할 경우
웹 연동 기술 URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의 정보를 포함 예. URL을 속성별로 분리하고자 할 경우 parse_url() 함수 사용 분리한 결과는 array에 저장(리턴) parse_url array parse_url (string url)
3
URL 분석 (2/2) 예제 (parse_url.php) <?PHP
웹 연동 기술 예제 (parse_url.php) <?PHP $parse_arr = parse_url 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>”; ?>
4
URL 내용 읽어오기 (1/4) 다른 홈페이지의 문서를 읽어오거나 URL 문서에서 필요한 정보를 추출하는 방법
웹 연동 기술 다른 홈페이지의 문서를 읽어오거나 URL 문서에서 필요한 정보를 추출하는 방법 fopen() 함수를 이용하여 매개 변수 위치에 URL을 삽입 홈페이지의 문서를 읽어와서 출력 (readsite1.php) <?PHP $fp = fopen (“ or die (“요청하신 페이지를 읽어올 수 없습니다.”); while ($line = fgets($fp, 1024)) { print $line; } fclose ($fp); ?>
5
URL 내용 읽어오기 (2/4) 웹 연동 기술 수행 결과 (readsite1.php)
6
URL 내용 읽어오기 (3/4) 다른 방법 예제 (readsite2.php)
웹 연동 기술 다른 방법 fopen() 및 fgets() 대신에 readfile() 함수를 사용 readfile() 함수는 파일의 내용을 읽어서 바로 출력하기 때문에 별도의 읽기 및 출력 과정이 필요하지 않음 주의점: 파일의 이름을 넘겨주는 파라미터에 반드시 사용하는 프로토콜( 지정하는 부분이 들어가야 함 예제 (readsite2.php) <?PHP readfile (“ ?>
7
URL 내용 읽어오기 (4/4) 웹 연동 기술 수행 결과 (readsite2.php)
8
링크(link) 읽어오기 (1/3) 특정 사이트의 문서에 포함되어 있는 링크만을 읽어올 경우
웹 연동 기술 특정 사이트의 문서에 포함되어 있는 링크만을 읽어올 경우 <A HREF> 태그로 시작되는 부분을 읽어옴 (예: <A HREF=“ ..) 정규 표현식을 사용하여 태그를 찾음 개념적 표현 형태: <, 임의의 문자들, a, 임의의 문자들, href=, 임의의 문자들, >, 임의의 문자들, </, 임의의 문자들, a, 임의의 문자들, > 순 정규 표현식 형태: “/<.*?a.*?href=.*?>.*<\/.*?a.*?>/”
9
링크(link) 읽어오기 (2/3) 예제 (parse_link.php)
웹 연동 기술 예제 (parse_link.php) <?PHP $fp = fopen (“ ”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]에는 서브 패턴이 저장됨)
10
링크(link) 읽어오기 (3/3) 웹 연동 기술 수행 결과
11
일반 텍스트 문서 HTML 문서 (1/6) 예상 문제점 예제 (linkexample.php) 특수문자의 처리
웹 연동 기술 예상 문제점 특수문자의 처리 예를 들어 ‘<’와 ‘>’ 사이에 있는 문자는 HTML에서 태그로 인식 변환이 필요 예제 (linkexample.php) grapes lemon <pear> mango <orange> apple <?PHP $text_array = file (“example.txt”) foreach ($text_array as $line) { print $line; } ?>
12
일반 텍스트 문서 HTML 문서 (2/6) 출력 결과
웹 연동 기술 출력 결과 <pear>와 <orange>가 출력되지 않았음 why? HTML에서 태그로 인식되었음
13
일반 텍스트 문서 HTML 문서 (3/6) HTML에서는, HTML에서 사용되는 엔티티들을 특수한 문자로 바꿀 경우
웹 연동 기술 HTML에서는, HTML 태그나 “엔터” 문자를 브라우저에서 인식하지 못함 이 문제점을 해결하기 위해서는 각 문자를 다른 기호로 나타내어야 함 공백 문자 < < (lt means “less than”) > > (gt means “greater than”) HTML에서 사용되는 엔티티들을 특수한 문자로 바꿀 경우 htmlentities() 사용 (c.f., 유사한 함수로 htmlspecialchars() 사용)
14
일반 텍스트 문서 HTML 문서 (4/6) htmlentities string: HTML로 변환하고자 하는 문자열
웹 연동 기술 htmlentities string: HTML로 변환하고자 하는 문자열 quota_style: “와 ‘ 중 어느 것으로 변환할 것인지 지정 charset: 문자열의 문자 집합 참조: string htmlentities (string string [,int quote_style [,string charset]]))
15
일반 텍스트 문서 HTML 문서 (5/6) nl2br 수정된 예제 (linkexample2.php)
웹 연동 기술 nl2br “엔터” 문자의 변환 (new line(“\n”)을 “<br>”로 변환하는 함수) 수정된 예제 (linkexample2.php) string nl2br (string string) <?PHP $text_array = file (“example.txt”) foreach ($text_array as $line) { print nl2br (htmlentities ($line)); } ?> file(): 파일 전체를 읽어서 배열에 저장하는 함수
16
일반 텍스트 문서 HTML 문서 (6/6) 웹 연동 기술 수행 결과
17
HTML 문서 일반 텍스트 문서 (1/2) HTML 문서를 일반 문서로 바꿀 경우 HTML 태그를 삭제하는 방법
웹 연동 기술 HTML 문서를 일반 문서로 바꿀 경우 HTML 문서의 모든 태그를 삭제 <br>을 “엔터”로 변환 HTML 태그를 삭제하는 방법 strip_tags() 함수를 사용 <br>을 엔터 문자로 변환하는 함수는 없음 정규 표현식 이용하여 변환 strip_tags: HTML 태그를 제거함 ( string strip_tags (string str [, string allowable_tags])
18
HTML 문서 일반 텍스트 문서 (2/2) 예제 (html2txt.php)
웹 연동 기술 예제 (html2txt.php) <html> <body> grapes lemon pear<br> mango orange apple </body> </html> <?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); ?> eregi_replace(): 주어진 패턴을 주어진 스트링으로 변환 (예: <br> “\n”)
Similar presentations