๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ฐœ๋ฐœ์ด์•ผ๊ธฐ

ํŠน์ • ์œ„์น˜์˜ ๋ฌธ์ž ๋ณ€๊ฒฝ

๋ฐ˜์‘ํ˜•
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. ๋ฐฐ์—ด์—์„œ ๋ฌธ์ž์—ด๋กœ ๋‹ค์‹œ ๋ณ€๊ฒฝ