테스트 사이트 - 개발 중인 베타 버전입니다

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

하하하X2 2년 전 조회 2,336

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

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

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

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

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

답변 1개

채택된 답변
+20 포인트
2년 전

</p>

<p><?php</p>

<p>$arr = [

    '한글1:23',

    '한글한456:7-89',

    '한글한글0:12-345:67-8',

    'ㄱㄱㄱㄱㄱㄱㄱㄱㄱㄱ1:2345678-0-99999999-99'

];</p>

<p>$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]/';</p>

<p>function count_of_digit($str) {

    $len = strlen($str);

    return 1 <= $len && $len <= 3;

}</p>

<p>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');</p>

<p>    $v_arr = array_merge($v_txt, $v_num);

    print('<pre>');

    print_r($v_arr);

    print('</pre>');

}</p>

<p>?></p>

<p>

 

</p>

<p><IfModule mod_rewrite.c></p>

<p>RewriteEngine On</p>

<p> </p>

<p>RewriteBase /</p>

<p>RewriteCond %{REQUEST_FILENAME} -f [OR]</p>

<p>RewriteCond %{REQUEST_FILENAME} -d</p>

<p>RewriteRule ^ - [L]</p>

<p>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]</p>

<p></IfModule></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

하하하X2
2년 전
아 대단히 감사합니다. 문제 해결 했습니다.

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

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

로그인