반응형

오늘부터  PHP+ Mysql 웹 개발 마스터북으로 php와 mysql을 복습하도록 하겠습니다


앞에 쉬운건 나중에 복습하고 내장함수부터 복습하도록 하겠습니다



입력 데이터 처리


1. 문자열의 바이트 수 얻기


데이터베이스에 데이터를 저장 할때 데이터의 바이트 수를 검사해야 할 겨우가 있습니다. 이처럼 문자열의 바이트 수를 얻으려면 strlen 함수를 사용합니다.


$변수 =strlen($문자열);



UTF-8에서 한글을 사용하려면 3바이트가 필요하기 때문에 $length에는 16이 할당됩니다


한국어로 몇글자인지 알려면 mb_strlen 함수를 사용합니다

$mb_length에는 6이 할당 됩니다




이렇게 나오는걸 볼 수 있습니다



2. 문자열 자르기


HTML 폼에서 송신된 데이터(문자열)에서 필요한 부분만 가져오려면 substr 함수를 사용합니다.

대상 문자열과 시작 위치, 시작 위치부터 가져올 문자열까지의 길이를 지정하여 결과를 변수에 할당할 수 있습니다.


$변수 =substr(문자열,시작위치,문자열의 길이);



문자열의 위치는 가장 앞의 문자가 0번쨰입니다


예제에서 A가 0번째  B가 1번쨰 입니다


따라서 substr($string,3,5)는 D부터 5글자가 나옴을 예측할 수 있습니다.



잘 나옴을 볼 수 있습니다



3. 문자열 바꾸기


문자열에 포함된 문자를 바꾸려면 str_replace 함수를 사용합니다. 

찾을 문자, 바꿀 문자, 문자열 순으로 인수를 지정하면 결과를 변수로 받을 수 있습니다


$변수 = str_replace(찾을 문자, 바꿀 문자,문자열);




위 코드를 보면 $html에 문자열(HTML 태그)를 넣고 $search에는 찾을 문자를 지정하고 $replace에는 바꿀 문자를 지정합니다.


여기서는 FONT 태그의 size를 치환합니다

결과는 size가 3에서 5로 바뀜을 알 수 있습니다



잘 바뀜을 알 수 있습니다.


4.공백 제거하기


HTML 폼에서 송신된 데이터(문자열)의 앞뒤에 공백이 있으면 입력 데이터를 검사할 때 오류가 발생할 수 있습니다. trim 함수를 사용하면 데이터 앞뒤로 공백 문자라는 불 필요한 문자들만 한번에 삭제 할 수 있습니다.


$변수 = trim(문자열);



변수 $string에 앞뒤에 공백을 붙인 문자열을 할당합니다

그리고 trim함수에 변수 $string을 넣어서 출력합니다



앞뒤 공백이 제거 되서 출력된걸 확인 할 수 있습니다.



*공백문자(white space)







HTML의 표시


1. HTML 태그 무효로 처리하기


이번 예제에서는 웹 브라우저로 표시되는 데이터를 가공하는 함수를 다뤄봅니다.

먼저 HTML 태그를 HTML 엔티티로 변환하는 htmlspecialchars 함수를 살펴보겠습니다.

이 함수는 HTML 태그에 사용하는 < ,> 등을 특수문자로 변환하여 HTML 태그로 동작하지 않는 문자로 표현 할 수 있습니다.


$변수 = htmlspecialchars(문자열,옵션);




변수 $string에 html태그를 저장하고 변수 $result에 함수안에 문자열과 옵션을 지정합니다



이렇게 잘 나오는걸 볼 수 있습니다.




페이지 소스보기로 보면 이렇게 특수문자로 변환되어 있음을 알 수 있습니다



*변환 가능 문자




*작은 따옴표, 큰 따옴표의 변환




2. HTML 태그 제거하기


문자열에서 HTML 태그를 제거하려면 strip_tags 함수를 사용합니다.

먼저 대상이 되는 문자열과 허가된 태그를 지정합니다.

허용할 태그 부분은 생략할 수 있어 인수로 지정하지 않아도 동작합니다

허용할 태그를 지정하려면 ["<A><FONT>"]와 같이 입력합니다


$변수=strip_tags(문자열, 허용할 태그);


변수 $string에 html태그를 넣고 변수 $result에 함수를 넣고 출력합니다



그럼 html태그가 없어져서 출력됨을 볼 수 있습니다.




이제 뒤에 허용될 태그를 <hr>로 설정하고 다시 출력합니다


<hr>은 적용되어 밑줄이 나옴을 알 수 있습니다



3.개행 코드 앞에 HTML 줄바꿈 태그 붙이기


nl2br 함수를 쓰면 문자열에 포함된 모든 줄바꿈 코드의 앞에 <br> /(Line Break)]태그를 추가할 수 있습니다.

nl2br 함수에 문자열을 지정하고 실행하면 개행 코드 앞에 <br/>이 추가되어 변수에 할당됩니다


$변수= nl2br(문자열)



php는 원래 개행을 하여도 줄바꿈되지 않고 문장이 한행으로 표시됩니다.

그러나 nl2br함수를 쓰면 개행코드 앞에 html 줄바꿈태그가 추가되기 때문에 입력한 그대로 줄바꿈이 되어 나옵니다



잘 나옴을 알 수 있습니다.



배열을 사용한 문자열 처리


1. 배열에서 문자열 작성하기


implode 함수를 쓰면 배열의 데이터를 지정한 문자로 구분한 문자열을 만들 수 있습니다

예를 들어 데이터베이스의 데이터를 CSV형식의 파일로 저장하여 [,]를 기준으로 항목을 구분하는 것과 같은 경우에 사용합니다.



배열 $data에 데이터를 넣어두고 implode 함수에 구분문자 , 와 배열 $data를 지정하면 결과로 사과,귤,감,밤을 $result에 받을 수 있습니다


또한 join함수는 implode 함수의 별칭으로 똑같은 기능을 합니다





잘 나옴을 볼 수 있습니다




데이터베이스에 넘기는 문자열 가공



1. 오류가 되는 문자를 이스케이프하기


웹앱에서는 HTML 폼에서 전송 받은 데이터로 데이터베이스를 검색할 때가 있습니다.

이 데이터안에 데이터베이스에 사용하는 SQL에서 특별한 의미를 가지는 문자(",'\ 등)가 포함되어 있으면 오류가 발생합니다. 이 경우에는 addslashes 함수를 써서 인수로 지정한 문자열안의 데이터베이스 질의에서 오류를 일으키는 문자 앞에 역슬래시를 추가하여 SQL로 동작하지 않게합니다.


$변수 = addslahes(문자열):




앞에 \가 표현됨을 알 수 있습니다.



2. 문자열에서 배열 작성하기


explode 함수는 문자열을 구분 문자로 나눈 결과를 배열에 넣을 수 있습니다

[구분 문자]와 [문자열]을 explode 함수에 인수로 지정하여 실행하면 결과를 배열에 넣을수 있습니다


$변수명 = explode(구분문자 , 문자열);




잘 나옴을 알 수 있습니다

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기