2013-05-23 2 views
1

문자열의 문자를 제한하려고합니다. 또한 문자열이 필요한 문자보다 작 으면 패딩을 추가하고 싶습니다.문자열 길이를 조정하는 방법

function create_string($string, $length) { 
    $str_len = strlen($string); 
    if($str_len > $length) { 
     //if string is greater than max length, then strip it 
     $str = substr($string, 0, $length); 
    } else { 
     //if string is less than the required length, pad it with what it needs to be the length 
     $remaining = $length-$str_len; 
     $str = str_pad($string, $remaining); 
    } 

    return $str; 
} 

내 입력은 16 자입니다

"닉의 오토 살롱"이다. 두 번째 매개 변수는 40입니다.

그러나,이 문자열은 그것에 추가 패딩의 8 자

"Nik's Auto Salon  " 

을 반환됩니다. 그건 맞지 않아. 그것에 추가 NO 패딩 문자열을 반환,이 입력으로

골드 패키지 모바일 자동차 세부

:

나는이 문자열을 시도했다. 그 문구가 필요한 45 길이보다 짧을 때 나는 두 번째 매개 변수 위치에 넣습니다.

이 기능을 제 사양대로 작동 시키려면 어떻게해야합니까?

+0

않아요이 나 strlen 문자열을 반환? 그래서 문자열에서 int를 공제하려고합니다. 그게 문제일까요? – JonathanRomer

+1

'strlen'은'int'를 반환합니다. – sgroves

답변

4

str_pad 두 번째 매개 변수와 동일한 공백을 추가하지 않으면 문자열 TO를 두 번째 매개 변수에 지정된 길이만큼 채 웁니다. 이것은 documentation에서도 매우 명확하지 않습니다.

대신이 시도 (당신이 $remaining을 계산 어디에 줄을 가지고) :

$str = str_pad($string, $length); 
+0

아 맞습니다. 그러나 str_pad가 두 줄이되면 두 줄로 줄이지는 않습니까? 제가 이것을하고있는 이유는 제가 제목을 뱉어 내기 때문이며 짧은 문자이거나 두 줄 밖에 없기 때문에 두 줄을 사용하기를 원합니다. 이후 나는 모든 것을 균일하게하고 싶다. – Peanut

+0

'str_pad'는 원하는 줄의 길이를 알 수있는 방법이 없습니다. 단순히 길이만큼 공간을 추가합니다. 개행을 삽입하지 않습니다. 줄 바꿈을 추가하려면 어떻게 든 추가해야합니다. – sgroves

+0

Oh ok 잘 고마워 ... – Peanut

관련 문제