1 / 18

Mi-Jung Choi Department of Computer Science Kangwon National University, Korea

웹 연동 기술. Mi-Jung Choi Department of Computer Science Kangwon National University, Korea. URL 분석 (1/2). 웹 연동 기술. URL (Uniform Resource Locator) 프로토콜 , 호스트 , 포트 , 경로 , 비밀번호 , User 등의 정보를 포함 예 . http://kim:3759@www.hostname.com:80/doc/index.html URL 을 속성별로 분리하고자 할 경우

Download Presentation

Mi-Jung Choi Department of Computer Science Kangwon National University, Korea

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 웹 연동 기술 Mi-Jung Choi Department of Computer Science Kangwon National University, Korea

  2. URL 분석 (1/2) 웹 연동 기술 • URL (Uniform Resource Locator) • 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의 정보를 포함 • 예. http://kim:3759@www.hostname.com:80/doc/index.html • URL을 속성별로 분리하고자 할 경우 • parse_url() 함수 사용 • 분리한 결과는 array에 저장(리턴) • parse_url arrayparse_url (stringurl)

  3. URL 분석 (2/2) 웹 연동 기술 • 예제 (parse_url.php) <?PHP $parse_arr = parse_url (“http://kim:3579@www.hostname.com: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>”; ?>

  4. URL 내용 읽어오기 (1/4) 웹 연동 기술 • 다른 홈페이지의 문서를 읽어오거나 URL 문서에서 필요한 정보를 추출하는 방법 • fopen() 함수를 이용하여 매개 변수 위치에 URL을 삽입 • 홈페이지의 문서를 읽어와서 출력 (readsite1.php) <?PHP $fp = fopen (“http://kr.yahoo.com/”,”r”) ordie (“요청하신 페이지를 읽어올 수 없습니다.”); while ($line = fgets($fp, 1024)) { print$line; } fclose ($fp); ?>

  5. URL 내용 읽어오기 (2/4) 웹 연동 기술 • 수행 결과 (readsite1.php)

  6. URL 내용 읽어오기 (3/4) 웹 연동 기술 • 다른 방법 • fopen() 및 fgets() 대신에 readfile() 함수를 사용 • readfile() 함수는 파일의 내용을 읽어서 바로 출력하기 때문에 별도의 읽기 및 출력 과정이 필요하지 않음 • 주의점: 파일의 이름을 넘겨주는 파라미터에 반드시 사용하는 프로토콜(http://)을 지정하는 부분이 들어가야 함 • 예제 (readsite2.php) <?PHP readfile (“http://www.daum.net/”); ?>

  7. URL 내용 읽어오기 (4/4) 웹 연동 기술 • 수행 결과 (readsite2.php)

  8. 링크(link) 읽어오기 (1/3) 웹 연동 기술 • 특정 사이트의 문서에 포함되어 있는 링크만을 읽어올 경우 • <A HREF> 태그로 시작되는 부분을 읽어옴(예: <A HREF=“http://cs.kangwon.ac.kr> ..) • 정규 표현식을 사용하여 태그를 찾음 • 개념적 표현 형태:<, 임의의 문자들, a, 임의의 문자들, href=, 임의의 문자들, >, 임의의 문자들, </, 임의의 문자들, a, 임의의 문자들, > 순 • 정규 표현식 형태:“/<.*a.*href=.*>.*<\/.*a.*>/”

  9. 링크(link) 읽어오기 (2/3) 웹 연동 기술 • 예제 (parse_link.php) <?PHP $fp = fopen (“http://www.hani.co.kr/”, ”r”) ordie (“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) 웹 연동 기술 • 예상 문제점 • 특수문자의 처리 • 예를 들어 ‘<’와 ‘>’ 사이에 있는 문자는 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 태그나 “엔터” 문자를 브라우저에서 인식하지 못함 • 이 문제점을 해결하기 위해서는 각 문자를 다른 기호로 나타내어야 함 • 공백 문자 &nbsp; • <  &lt; (lt means “less than”) • >  &gt; (gt means “greater than”) • HTML에서 사용되는 엔티티들을 특수한 문자로 바꿀 경우 • htmlentities() 사용 (c.f., 유사한 함수로 htmlspecialchars() 사용)

  14. 일반 텍스트 문서  HTML 문서 (4/6) 웹 연동 기술 • htmlentities • string: HTML로 변환하고자 하는 문자열 • quote_style: “와 ‘ 중 어느 것으로 변환할 것인지 지정 • charset: 문자열의 문자 집합 • 참조: http://kr.php.net/manual/kr/function.htmlentities.php stringhtmlentities (stringstring [,intquote_style [,stringcharset]]))

  15. 일반 텍스트 문서  HTML 문서 (5/6) 웹 연동 기술 • nl2br • “엔터” 문자의 변환 (new line(“\n”)을 “<br>”로 변환하는 함수) • 수정된 예제 (linkexample2.php) stringnl2br (stringstring) <?PHP $text_array = file (“example.txt”) foreach ($text_array as$line) { printnl2br (htmlentities ($line)); } ?> • file(): 파일 전체를 읽어서 배열에 저장하는 함수

  16. 일반 텍스트 문서  HTML 문서 (6/6) 웹 연동 기술 • 수행 결과

  17. HTML 문서  일반 텍스트 문서(1/2) 웹 연동 기술 • HTML 문서를 일반 문서로 바꿀 경우 • HTML 문서의 모든 태그를 삭제 • <br>을 “엔터”로 변환 • HTML 태그를 삭제하는 방법 • strip_tags() 함수를 사용 • <br>을 엔터 문자로 변환하는 함수는 없음  정규 표현식 이용하여 변환 • strip_tags: HTML 태그를 제거함 (http://kr.php.net/manual/kr/function.strip-tags.php) stringstrip_tags (stringstr [, stringallowable_tags])

  18. HTML 문서  일반 텍스트 문서(2/2) 웹 연동 기술 • 예제 (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”)

More Related