채택완료

문자열에서 조건에 맞는 문자열 차례대로 찾아서 변수에 넣는 법 좀 알려주세요.

2023-01-17 (화) 19:55:23 4,476

예를들어 다음과 같은 문자열이 있을때
한글숫자:숫자
한글숫자:숫자-숫자   
한글숫자:숫자-숫자:숫자 

이런 형태들에서
변수1 = 한글
변수2 = 숫자
변수3 = 숫자
변수4 = 숫자
변수5 = 숫자
이런식으로 차례로 넣는 법을 가르쳐 주세요.

한글의 글자수는 1자에서 6자.
숫자는 1자에서 3자입니다.

그리고 또 한가지 질문은요.
.htaccess 에서
https://domain.com/한글
이렇게 주소창에 입력이 들어올 경우 그러니까 처음에 한글이
들어올 경우 원하는 url로 전달하는 코드가 어떻게 되나요?

|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트
Copy
<?php

$arr = [
    '한글1:23',
    '한글한456:7-89',
    '한글한글0:12-345:67-8',
    'ㄱㄱㄱㄱㄱㄱㄱㄱㄱㄱ1:2345678-0-99999999-99'
];

$regexp_txt = '/^[\xE3\x84\xB1-\xE3\x85\x8E\xE3\x85\x8F-\xE3\x85\xA3\xEA\xB0\x80-\xED\x9E\xA3]{3,18}/';
$regexp_sep = '/[\D]/';

function count_of_digit($str) {
    $len = strlen($str);
    return 1 <= $len && $len <= 3;
}

foreach ($arr as $v) {
    $v_txt = [];
    $v_num = [];
    preg_match($regexp_txt, $v, $v_txt);
    $v_num = preg_split($regexp_sep, $v);
    $v_num = array_filter($v_num, 'count_of_digit');

    $v_arr = array_merge($v_txt, $v_num);
    print('<pre>');
    print_r($v_arr);
    print('</pre>');
}

?>
Copy
<IfModule mod_rewrite.c>

RewriteEngine On

 

RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^ - [L]

RewriteRule ^([\xE3\x84\xB1-\xE3\x85\x8E\xE3\x85\x8F-\xE3\x85\xA3\xEA\xB0\x80-\xED\x9E\xA3]+)$ 원하는url?qs=$1 [L,R=302]

</IfModule>

답변에 대한 댓글 1개

아 대단히 감사합니다. 문제 해결 했습니다.

답변을 작성하려면 로그인이 필요합니다.