1개 발견

php 한글 검색 결과

  1. 미리보기 2015.03.04

    [XE] PHP를 이용해 DB의 내용을 JSON 형식으로 출력하기

2015. 3. 4. 18:35 - Str@wBerry

[XE] PHP를 이용해 DB의 내용을 JSON 형식으로 출력하기



본 게시물은 XE Database에서 문서의 제목내용물을 가져오는 예입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!--?php
$db_host = "호스팅 이름";
$db_user = "DB 사용자 이름";
$db_passwd = "DB 비밀번호";
$db_name = "DB 이름";
  
mysql_connect($db_host,$db_user,$db_passwd);
mysql_select_db($db_name);
 
$result = mysql_query("SELECT * FROM xe_documents;");
$data = mysql_fetch_array($result);
$JSONres = array
(   "title" => $data[title],
    "content" => $data[content]
);
 
print_r((json_encode($JSONres));
?-->

이렇게 작성하게 되면 JSON 형식의 결과물은 나옵니다.

하지만 문제점이 발생됩니다. 


1. 한글이 깨진다.

2. 내용물에 HTML 코드가 같이 나온다.


두가지 문제점을 해결해보도록 하겠습니다.


1. 한글이 깨진다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!--?php
$db_host = "호스팅 이름";
$db_user = "DB 사용자 이름";
$db_passwd = "DB 비밀번호";
$db_name = "DB 이름";
  
mysql_connect($db_host,$db_user,$db_passwd);
mysql_select_db($db_name);
 
mysql_query('set session character_set_connection=utf8;');
mysql_query('set session character_set_results=utf8;');
mysql_query('set session character_set_client=utf8;');
 
$result = mysql_query("SELECT * FROM xe_documents;");
$data = mysql_fetch_array($result);
$JSONres = array
(   "title" => urlencode($data[title]),
    "content" => urlencode($data[content])
);
 
print_r(urldecode(json_encode($JSONres)));
?-->


2. 내용물에 HTML 코드가 같이 나온다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!--?php
$db_host = "호스팅 이름";
$db_user = "DB 사용자 이름";
$db_passwd = "DB 비밀번호";
$db_name = "DB 이름";
 
mysql_connect($db_host,$db_user,$db_passwd);
mysql_select_db($db_name);
 
mysql_query('set session character_set_connection=utf8;');
mysql_query('set session character_set_results=utf8;');
mysql_query('set session character_set_client=utf8;');
 
$result = mysql_query("SELECT * FROM xe_documents;");
$data = mysql_fetch_array($result);
$JSONres = array
(   "title" => urlencode($data[title]),
    "content" => urlencode($data[content])
);
  
print_r(strip_tags(urldecode(json_encode($JSONres))));
?-->


결과물 스크린샷



추가 (2015-03-05)

모든 문서의 제목과 내용을 출력하는 소스입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!--?php
$db_host = "호스팅 이름";
$db_user = "DB 사용자 이름";
$db_passwd = "DB 비밀번호";
$db_name = "DB 이름";
  
mysql_connect($db_host,$db_user,$db_passwd);
mysql_select_db($db_name);
mysql_query('set session character_set_connection=utf8;');
mysql_query('set session character_set_results=utf8;');
mysql_query('set session character_set_client=utf8;');
 
$result = mysql_query("SELECT * FROM xe_documents");
$rows = array();
while ($row = mysql_fetch_assoc($result))
    {
        $JSONres = array
        (  
            "title"     =--> urlencode($row['title']),
            "content"   => urlencode($row['content'])
        );
        array_push($rows, $JSONres);
    }
     
echo (strip_tags(urldecode(json_encode($rows))));
?>