문자열에서 조건에 맞는 문자열 차례대로 찾아서 변수에 넣는 법 좀 알려주세요.
본문
예를들어 다음과 같은 문자열이 있을때
한글숫자:숫자
한글숫자:숫자-숫자
한글숫자:숫자-숫자:숫자
이런 형태들에서
변수1 = 한글
변수2 = 숫자
변수3 = 숫자
변수4 = 숫자
변수5 = 숫자
이런식으로 차례로 넣는 법을 가르쳐 주세요.
한글의 글자수는 1자에서 6자.
숫자는 1자에서 3자입니다.
그리고 또 한가지 질문은요.
.htaccess 에서
https://domain.com/한글
이렇게 주소창에 입력이 들어올 경우 그러니까 처음에 한글이
들어올 경우 원하는 url로 전달하는 코드가 어떻게 되나요?
답변 1
<?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>');
}
?>
<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>
답변을 작성하시기 전에 로그인 해주세요.