티스토리 뷰
보통 인치를 표현할때 산업현장에서는 "을 인치로 쓰는데...
이게 json으로 들어가면 어마어마한 .. 반전이 일어납니다.
'ㄹ'키를 누르고 한자를 누르면... '″ ' 마크로 변경해서 꼼수로 사용하고 있어요.
쌍따옴표 둘러쌓인 제이슨에서 골치아픈 일입니다. 우리가 " 부호를 자주 사용할때가 있지요.
josn 은 기본적으로 "안의 값을 넣는데, 그 안에 6" 6인치 이런식으로 된 것때문에 엉망이 되지요.
function generateItemCodeForAccessory($accessoryItem) {
$code = strtolower(isset($accessoryItem['col1']) ? $accessoryItem['col1'] : '');
// 디버그 코드 추가
if (empty($code)) {
print 'Invalid accessory item: ';
var_dump($accessoryItem);
}
return $code;
}
위의 코드에서 따옴표 "를 특수문자 ″로 변경하는 코드를 넣어줘. 그래야 오류를 방지해야 합니다.
주어진 코드에서 따옴표 "를 특수문자 ″로 변경하는 코드를 추가하려면, str_replace 함수를 사용할 수 있습니다. 이 함수는 문자열 내에서 특정 문자열을 다른 문자열로 대체할 수 있습니다.
다음은 generateItemCodeForAccessory 함수에 따옴표 "를 특수문자 ″로 변경하는 코드를 추가한 예제입니다:
function generateItemCodeForAccessory($accessoryItem) {
// 모든 문자열 값에서 "을 ″로 변환
$accessoryItem = array_map(function($value) {
return is_string($value) ? str_replace('"', '″', $value) : $value;
}, $accessoryItem);
$code = strtolower(isset($accessoryItem['col1']) ? $accessoryItem['col1'] : '');
// 디버그 코드 추가
if (empty($code)) {
print 'Invalid accessory item: ';
var_dump($accessoryItem);
}
return $code;
}
이 코드는 다음과 같이 작동합니다:
array_map 함수를 사용하여 $accessoryItem 배열의 모든 값을 순회합니다.
각 값이 문자열인 경우 str_replace 함수를 사용하여 모든 따옴표 "를 특수문자 ″로 대체합니다.
변환된 $accessoryItem 배열을 사용하여 원래 코드를 계속 실행합니다.
아래의 코드에도 위의 변환 과정이 필요하다.
$stmh_fee_sub = $pdo->query($sql_fee_sub);
while ($row = $stmh_fee_sub->fetch(PDO::FETCH_ASSOC)) {
$items_array = array_filter(safe_json_decode($row['item']), 'strlen'); // 빈 값 제거
foreach ($items_array as $item) {
$generated_code = generateItemCodeForAccessory([
'col1' => $item
]);
if (!empty($generated_code)) {
$items[$generated_code] = $generated_code;
}
}
}
아래의 코드에 따옴표 "를 특수문자 ″로 변경하는 과정을 추가하려면, generateItemCodeForAccessory 함수와 함께 str_replace 함수를 사용하여 items_array의 각 항목을 변환할 수 있습니다.
다음은 변환 과정을 추가한 코드입니다:
$stmh_fee_sub = $pdo->query($sql_fee_sub);
while ($row = $stmh_fee_sub->fetch(PDO::FETCH_ASSOC)) {
$items_array = array_filter(safe_json_decode($row['item']), 'strlen'); // 빈 값 제거
foreach ($items_array as $item) {
// "를 ″로 변환
$item = str_replace('"', '″', $item);
$generated_code = generateItemCodeForAccessory([
'col1' => $item
]);
if (!empty($generated_code)) {
$items[$generated_code] = $generated_code;
}
}
}
$stmh_fee_sub = $pdo->query($sql_fee_sub);
while ($row = $stmh_fee_sub->fetch(PDO::FETCH_ASSOC)) {
$items_array = array_filter(safe_json_decode($row['item']), 'strlen'); // 빈 값 제거
foreach ($items_array as $item) {
// "를 ″로 변환
$item = str_replace('"', '″', $item);
$generated_code = generateItemCodeForAccessory([
'col1' => $item
]);
if (!empty($generated_code)) {
$items[$generated_code] = $generated_code;
}
}
}
이 코드는 다음과 같이 작동합니다:
safe_json_decode 함수로 디코딩한 items_array 배열의 각 항목을 순회합니다.
각 항목의 문자열에서 str_replace 함수를 사용하여 따옴표 "를 특수문자 ″로 대체합니다.
변환된 항목을 generateItemCodeForAccessory 함수에 전달합니다.
생성된 코드가 비어 있지 않으면, items 배열에 추가합니다.
" 쌍따옴표와 전쟁...
이걸 이겨야 합니다. 그래야 제이슨과 친해질 수 있어요~
'IT tech Coding > php' 카테고리의 다른 글
팝빌(Popbill) vs 이지웰(ezWell), 어느 것이 더 편리할까? ft. GPT (0) | 2024.07.18 |
---|---|
php 페이지의 오류를 전체 드러내는 코드는? (0) | 2024.06.28 |
[php] if(empty($outsourcing)) 이 조건문은 null 이나 '' 전부 잡아내나?empty에 대해 알아보자구요. (0) | 2024.06.12 |
[자바스크립트 + php] pdf 파일 만들때 1페이지에 맞춤해서 출력하는 방법 (2) | 2024.06.10 |
[php+javascript+html+css] 나만의 디자인 모달 만들기.... (0) | 2024.05.29 |
- Total
- Today
- Yesterday
- 도면자동생성
- 효율적코딩방법
- #InstallForge
- isset을 적용해야 하는 이유
- #파이썬패키징
- 파이썬코드줄바꿈방법
- #프로그램설치
- ajax오류메시지
- 티스토리챌린지
- 스크립트작성기초
- 코딩튜토리얼
- 테크에능한여성
- 코딩효율성
- 뫄프로그래밍
- 엑셀입력보호
- 오블완
- 구글드라이브API
- General error: 2031
- json파일편하게보는법
- 1. #웹개발 2. #로트번호 3. #성적서보기 4. #ajax 5. #jquery 6. #php 7. #프론트엔드 8. #백엔드 9. #부트스트랩 10. #웹기능구현
- 엑셀보호
- chatGPT3.5파이썬버전
- Bootstrap 5
- 오토핫키가이드
- 캐드자동작도
- 프로그래머생활
- json파일형태보기
- 엑셀셀보호
- sql문장 날짜계산
- coalesce는 한국어로 "코얼레스크" 또는 "코얼리스"
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |