2018년 5월 11일 금요일

[PHP예제] 056 해시값을 구하고 싶을 때




 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
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>해시값을 구하고 싶을 때</title>
</head>
<body>
<div>
<?php
$text = 'abcde12345';
echo "<p>해시 계산 대상의 문자열: " . $text . "</p>";
echo "<ul>";

echo "<li><p>MD5 계산</p>";
echo "<p>" . md5($text) . "</p></li>";

echo "<li><p>CRC32 다항식 계산</p>";
echo "<p>" . crc32($text) . "</p></li>";

echo "<li><p>SHA1 해시값 계산</p>";
echo "<p>" . sha1($text) . "</p></li>";

echo "<li><p>SHA256 해시값 계산</p>";
echo "<p>" . hash('sha256', $text) . "</p></li>";

echo "</ul>";

echo "<p>hash() 함수에서 지정할 수 있는 해시 알고리즘</p>";
echo "<pre>";
print_r(hash_algos());
echo "</pre>";
?>
</div>
</body>
</html>



[PHP예제] 055 문자 인코딩을 변환하고 싶을 때




 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
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>문자 인코딩을 변환하고 싶을 때</title>
</head>
<body>
<div>
<?php
$text1 = '가나다라마12345';
echo "<p>원래 문자열: " . $text1 . "</p>";

// 문자 인코딩을 ISO-2022-KR, EUC-KR로 변환
$iso2022kr = mb_convert_encoding($text1, 'ISO-2022-KR');
$euc = mb_convert_encoding($text1, 'EUC-KR');

echo "<p>문자 인코딩을 변환한 문자열(깨져서 나옴)";
echo "<ul>";
echo "<li>ISO-2022-KR: " . $iso2022kr . "</li>";
echo "<li>EUC-KR: " . $euc . "</li>";
echo "</ul>";

// 문자 인코딩을 ISO-2022-KR, EUC-KR에서 UTF-8로 변환합니다.
$utfiso = mb_convert_encoding($iso2022kr, 'UTF-8', 'ISO-2022-KR');
$utfEuc = mb_convert_encoding($euc, 'UTF-8', 'EUC-KR');

echo "<p>UTF-8에 문자 인코딩을 되돌린 문자열</p>";
echo "<ul>";
echo "<li>ISO-2022-KR: " . $utfiso . "</li>";
echo "<li>EUC-KR: " . $utfEuc . "</li>";
echo "</ul>";
?>
</div>
</body>
</html>


[PHP예제] 053 문자열 보조


  • 문자열의 앞뒤 공백을 삭제하고 싶을 때
    • trim()
    • ltrim()
    • rtrim()
문자열의 앞뒤 공백 문자에 부합하는 정규 표현식
삭제 대상 정규 표현식
앞뒤의 공백 문자 \A(\s)+|(\s)+\z
선두의 공백 문자 \A(\s)+
말미의 공백 문자 (\s)+\z



  • 문자열의 길이를 알고 싶을 때
    • strlen()
    • mb_strlen()
    • bin2hex()



[PHP예제] 052 알파벳을 대문자에서 소문자로 변환하기




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>알파벳을 대문자에서 소문자로 변환하기</title>
</head>
<body>
<div>
<?php
$text1 = 'THIS IS A PEN.';
echo '<p>변환할 문자열: ' . $text1 . '</p>';
echo '<ul>';
echo '<li><p>모든 영문자를 소문자로 한다(strtolower)</p>';
echo '<p>' . strtolower($text1) . '</p></li>';
echo '</ul>';
?>
</div>
</body>
</html>


2018년 5월 10일 목요일

[PHP예제] 051 알파벳을 소문자에서 대문자로 변환하기




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>알파벳을 소문자에서 대문자로 변환하기</title>
</head>
<body>
<div>
<?php
$text1 = 'this is a pen.';
echo '<p>변환할 문자열: ' . $text1 . '</p>';
echo '<ul>';
echo '<li><p>모든 알파벳을 대문자로 한다(strtoupper)</p>';
echo '<p>' . strtoupper($text1) . '</p></li>';
echo '<li><p>첫 번째 문자만 대문자로 한다(ucfirst)</p>';
echo '<p>' . ucfirst($text1) . '</p></li>';
echo '<li><p>단어의 첫 번째 문자를 대문자로 한다(ucwords)</p>';
echo '<p>' . ucwords($text1) . '</p></li>';
echo '</ul>';
?>
</div>
</body>
</html>


[PHP예제] 050 문자열을 반복해서 표시하기



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>문자열을 반복해서 표시하기</title>
</head>
<body>
<div>
<?php
echo "<p>[*]을 15회 반복하기</p>";
echo '<p>' . str_repeat('*', 15) . '</p>';

echo "<p>[_/]을 10회 반복하기</p>";
echo '<p>' . str_repeat('_/', 10) . '</p>';
?>
</div>
</body>
</html>



2018년 4월 11일 수요일

[PHP예제] 049 복잡한 문자열을 정규 표현식으로 변환하기




 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
27
28
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>복잡한 문자열을 정규 표현식으로 변환하기</title>
</head>
<body>
<div>
<?php
$text = <<<EOL
신용카드번호 : 1234 5678 9012 3456
전화번호 : 010-1234-5678
비고 : 특별히 없음
EOL;

echo '<p>원래 문자열: </p>';
echo '<pre>' . $text . '</pre>';

$replaced = mb_ereg_replace('\d{4} ?\d{4} ?\d{4} ?\d{4}', '****', $text);

$replaced = mb_ereg_replace('0\d{1,4}-?\d{1,4}-?\d{4}', '****', $replaced);

echo '<p>대치 후 : </p>';
echo '<pre>' . $replaced . '</pre>';
?>
</div>
</body>
</html>