개발 Life

νŠΉμ • μœ„μΉ˜μ˜ 문자 λ³€κ²½

SOBOB 2018. 11. 13. 09:43
λ°˜μ‘ν˜•
https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=463091#c_463093


β–Ά μ •κ·œν‘œν˜„μ‹μ„ μ΄μš©ν•œ 방법


$str = 'κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€';

echo preg_replace('/^((?:(?:.*?κ°€){1}.*?))κ°€/', '$1'.'뷁', $str); // κ°€λ‚˜λ‹€λ·λ‚˜λ‹€κ°€λ‚˜λ‹€


*

'/^((?:(?:.*?κ°€){1}.*?))κ°€/u'

'/^((?:(?:.*?κ°€){1}.*?))κ°€/ui' λŒ€μ†Œλ¬Έμž λ¬΄μ‹œ


* n번째 문자[μ—΄] 변경은 n-1μž…λ‹ˆλ‹€.

$str = 'κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€'; echo preg_replace('/^((?:(?:.*?κ°€){0}.*?))κ°€/', '$1'.'뷁', $str); // λ·λ‚˜λ‹€κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€

$str = 'κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€'; echo preg_replace('/^((?:(?:.*?κ°€){1}.*?))κ°€/', '$1'.'뷁', $str); // κ°€λ‚˜λ‹€λ·λ‚˜λ‹€κ°€λ‚˜λ‹€

$str = 'κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€'; echo preg_replace('/^((?:(?:.*?κ°€){2}.*?))κ°€/', '$1'.'뷁', $str); // κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€λ·λ‚˜λ‹€

$str = 'κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€'; echo preg_replace('/^((?:(?:.*?κ°€){3}.*?))κ°€/', '$1'.'뷁', $str); // κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€


β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯


β–Ά λ¬Έμžμ—΄ ν•¨μˆ˜λ₯Ό μ΄μš©ν•œ 방법.


$str = 'κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€';

$s = 'κ°€';

$t = '뷁'; // 이 λ‚΄μš©μ΄ 길어져도 무방. 예) 'κ°€λ‚˜λ‹€'μ—μ„œ 'λ‚˜'λ₯Ό 'ν•˜ν•˜'둜 λ°”κΎΈλ©΄, 'κ°€ν•˜ν•˜λ‹€'

echo substr_replace($str, $t, strpos($str, $s, strpos($str, $s) + strlen($s)), strlen($s)); // κ°€λ‚˜λ‹€λ·λ‚˜λ‹€κ°€λ‚˜λ‹€


* μ§€μ •ν•œ λ¬Έμžκ°€ 1개라면, 처음 것이 λ°”λ€ŒλŠ” λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ΄μœ λŠ” 적지 μ•Šμ•„λ„ 되겠죠?


β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯


β–Ά λ©€ν‹°λ°”μ΄νŠΈ λ¬Έμžμ—΄ ν•¨μˆ˜λ₯Ό μ΄μš©ν•œ 방법


mb_internal_encoding('UTF-8');

$str = 'κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€';

for ($i=$s=0, $loop=mb_strlen($str); $i<$loop; $i++) {

    $c = mb_substr($str, $i, 1);

    echo $c==='κ°€' && ++$s===2 ? '뷁' : $c; // μ§€μ •ν•œ λ¬Έμžμ—΄, 2번째인 경우만 λ°”λ€ŒλŠ” λ‚΄μš©

}


* ++$s===2 λΆ€λΆ„μ˜ 숫자λ₯Ό λ°”κΎΈλ©΄ ν•΄λ‹Ή μœ„μΉ˜λ§Œ λ°”λ€ŒλŠ” κ²ƒμž…λ‹ˆλ‹€.


β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯


β–Ά μ •κ·œν‘œν˜„μ‹, λ°°μ—΄, λ¬Έμžμ—΄ ν•¨μˆ˜ 등을 μ΄μš©ν•œ 방법


$str = 'κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€';

$s = 'κ°€';

$t = '뷁';

if ( preg_match_all('/'.preg_quote($s, '/').'/', $str, $m) > 1 ) { // λ˜λŠ” substr_count($str, $s) > 1

    $temp = preg_split('//u', $str, -1, 1);

    $p = array_search($s, $temp);

    $temp[$p] = '__TEMP__';

    $temp[array_search($s, $temp)] = $t;

    $temp[$p] = $s;

    echo implode('', $temp); // κ°€λ‚˜λ‹€λ·λ‚˜λ‹€κ°€λ‚˜λ‹€ … implode($temp)처럼 μ‚¬μš©ν•  수 μžˆμ§€λ§Œβ€¦

}


β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯


β–Ά μ •κ·œν‘œν˜„μ‹, λ¬Έμžμ—΄ ν•¨μˆ˜ 등을 μ΄μš©ν•œ 방법


$str = 'κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€κ°€λ‚˜λ‹€';

$s = 'κ°€';

$t = '뷁';

$c = preg_match_all('/[^'.$s.']*'.$s.'[^'.$s.']*/', $str, $m);

if ( $c > 1 ) {

    $m[0][1] = str_replace('κ°€', '뷁', $m[0][1]);

    echo implode('', $m[0]); // κ°€λ‚˜λ‹€λ·λ‚˜λ‹€κ°€λ‚˜λ‹€

}


* λ§ˆμ°¬κ°€μ§€λ‘œ n번째만 λ³€κ²½ν•˜κ² λ‹€λ©΄ $m[0][n-1]만 μˆ˜μ •ν•˜λ©΄ λ©λ‹ˆλ‹€.


β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯β€₯


* μž¬λ°Œμ–΄μ„œ μ½”λ“œμ™€ μ„€λͺ…을 μ’€ 더 μΆ”κ°€ν–ˆμ–΄μš”.



https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=463091#c_463093







클릭 이벀트 μ‹€ν–‰ κ²°κ³Ό 확인


$(function () {


$(window).keydown(function(e){


console.log(e);


});


});






$str = "κ°€λ‚˜ 닀라 마잠 사아 μΉ΄μΉ΄μΊ‰ ν…ŒμŠ€νŠΈ";

    $str = preg_replace("/\s+/", "", $str);

    $txt_arr = array();

    

    for ($i = 0; $i < mb_strlen($str,"UTF-8"); $i++) {

        $txt = mb_substr ($str, $i, 1, 'UTF-8');

        array_push ($txt_arr, $txt);

    }

    

    $txt_arr[1] = "퉀";

    

    //print_r($txt_arr);

    $str = implode ("", $txt_arr);


    echo $str;


1. λ¬Έμžμ—΄ 곡백 제거 

2. λ¬Έμžμ—΄ λ°°μ—΄λ‘œ λ³€κ²½

3. ν•΄λ‹Ήν•˜λŠ” μœ„μΉ˜μ˜ κ°’ λ³€κ²½ (μΈλ±μŠ€λŠ” 0λΆ€ν„° μ‹œμž‘ν•˜λ‹ˆ, λ‘λ²ˆμ§ΈλŠ” 1)

4. λ°°μ—΄μ—μ„œ λ¬Έμžμ—΄λ‘œ λ‹€μ‹œ λ³€κ²½




λ°˜μ‘ν˜•