if 문에서 대소문자 구분 없애기

if 문에서 대소문자 구분 없애기

QA

if 문에서 대소문자 구분 없애기

본문


<?php if ($car == 'Benz'): ?>
    Benz
<?php elseif($car == 'BMW'): ?>
    BMW
<?php elseif($car == 'Toyota'): ?>
    Toyota
<?php elseif(strlen($car)>2): ?>
    <?= ucwords('The picture will be avaialble on September');?>
<?php endif ?>  

 

 

이런 if 문을 만들었는데 문제는 Benz 하고 benz 하고 대소문자 구분을 하더라구요.

이런거 다 쌩까고 그냥 되게 할려고 하거든요.

그래서 아래와 같은 코드를 썻는데... 코드만 더 지저분 해지더군요.

 

lcfirst() - converts the first character of a string to lowercase.
ucwords() - converts the first character of each word in a string to uppercase.
strtoupper() - converts a string to uppercase.
strtolower() - converts a string to lowercase.

 

 

혹시 if 문에서 저런대소문자 구분이 안되게 하는 코드나 라이브러리가 있을까요?

누가 만들어 놓았을 것도 같네요.

 

제가 function 으로 만들어도 될꺼 같기도 한데 일단 고수분의 조언을 듣고 싶네요.

이럴경우는 어떻게 하는게 가장 현명한 가요?

 

어쩔때는 메이커보다  The picture will be avaialble on September이라는 말을 쓰면 

 

 The picture will be avaialble on September 라는 말을 쓰면 

September 는 반드시 앞글자가 대문자여야 하는데 

딱 September 만 대문자로 바꾸는 방법은 없더군요.

이럴때는 어뜨케 해야 하는지.. 내가 따로 펑션을 만들어야 하는지.. 

궁금합니다.

 

고수분들은 다른 더 좋은 생각이 있을꺼 같아 여쭈어 봅니다.

감사합니다.

 

 

이 질문에 댓글 쓰기 :

답변 1

strtoupper(), strtolower() 쓰시는게 제일 최선일것같은데 어느부분에서 지저분해진다는건가요?

 

<?php

$cap_car = strtoupper($car);

if ($cap_car == 'BENZ'): ?>
    Benz
<?php elseif($cap_car == 'BMW'): ?>
    BMW
<?php elseif($cap_car == 'TOYOTA'): ?>
    Toyota
<?php elseif(strlen($cap_car)>2): ?>
    <?= ucwords('The picture will be avaialble on September');?>
<?php endif ?>  

 

The picture will be available on September
문장을 분리해서 하는수밖에없지요
$str_array= explode(" ", "The picture will be available on September");
The picture will be available on 는 고정적인 문장인것같은데요
0 1 2 3 4 5 6 , explode는 각 조건에따라 배열로 저장하는 함수입니다
6에 날짜가 오겠네요
$str_array[6] == "September" 겠지요
여기서 앞문장만 대문자가 될수있도록 $str_array[6] = ucfirst($str_array[6]);
하고 다시 합쳐주면될것같네요
$str = implode( ' ', $str_array);
echo $str;

함수로 간단하게 만들면
//문자열에서 특정위치의 앞문자 대문자로
function get_txt_ucfirst($txt, $num){ //$txt : 문장 , $num : 바꿀 문자의 위치
  $str_array= explode(" ", $txt);
  $str_array[$num] = ucfirst($str_array[$num]);
  $str = implode( ' ', $str_array);
  return $str;
}

물론 이러한 처리를 하기전에... text가 대문자밖힌상태로 넘어오게 만드는게 더 좋을것같아 보입니다.. 어디서든 입력을하든 선택을하든해서 해당 문자열이 바뀔텐데 그쪽단에서 대문자로 처리해서 받는게 제일 좋을것같아요

답변을 작성하시기 전에 로그인 해주세요.
전체 954
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT