PHP에서 문자열 조작은 개발 프로세스에서 가장 일반적으로 사용되는 기능 중 하나입니다. 사용자 입력 처리, 동적 컨텐츠 생성 또는 긴 텍스트에서 유용한 정보를 추출하든 문자열을 가로 채어야 할 수도 있습니다. PHP는 문자열을 효율적으로 처리하는 데 도움이되는 많은 강력한 기능을 제공하며 Substr은 그 중 하나입니다.
Substr 은 PHP의 내장 기능으로, 지정된 부분을 문자열에서 가로 채 웁니다. 그것으로, 당신은 문자열의 어느 곳에서나 쉽게 시작하여 서브 스트링을 추출 할 수 있습니다.
기능 프로토 타입 :
<span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$start</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span>|</span><span><span class="hljs-literal">null</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>$ String : 가로 채워야하는 원래 문자열입니다.
$ 시작 : 음수 일 수있는 시작 위치는 계산이 문자열 끝에서 시작 함을 의미합니다.
$ 길이 (선택 사항) : 가로 채기 길이. 생략하면 문자열이 시작 위치에서 문자열 끝까지 가로 채립니다.
우리가 "안녕하세요, 세상!" , 왼쪽에서 처음 5자를 가로 채려면 substr 함수를 사용할 수 있습니다. 코드는 다음과 같습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// 산출: Hello</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>이 예에서 0은 문자열의 첫 번째 문자에서 시작하는 것을 의미하고 5는 길이 5의 하위 문자를 가로 채는 것을 의미합니다. 따라서 출력은 "hello" 입니다.
동적 조건에 따라 절편의 길이를 제어 할 수도 있습니다. 예를 들어, 특정 조건에 따라 문자열의 일부만을 가로 채려면 $ 길이를 변수 값으로 설정할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Welcome to PHP world!"</span></span><span>;
</span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-number">7</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// 산출: Welcome</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>기판 함수는 음수 인덱싱을 지원하므로 문자열의 오른쪽에서 가로 채울 수 있습니다. 이것은 오른쪽에서 시작하는 일부 문자열 작업을 처리하는 데 매우 유용합니다.
예를 들어, 문자열의 마지막 세 문자로 시작하려면 다음과 같습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Learning PHP is fun!"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, -</span><span><span class="hljs-number">3</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>; </span><span><span class="hljs-comment">// 산출: fun</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>여기서 -3은 문자열의 끝까지 문자열의 두 번째 문자를 가로 채는 것을 의미합니다.
일반적인 시나리오는 파일 이름 확장을 추출하는 것입니다. 파일 경로가 있고 파일 확장자를 가져와야한다고 가정합니다. Substr 및 Strrpos 기능을 결합하여이를 수행 할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$file_name</span></span><span> = </span><span><span class="hljs-string">"document.pdf"</span></span><span>;
</span><span><span class="hljs-variable">$dot_position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strrpos</span></span><span>(</span><span><span class="hljs-variable">$file_name</span></span><span>, </span><span><span class="hljs-string">'.'</span></span><span>); </span><span><span class="hljs-comment">// 마지막 지점의 위치를 찾으십시오</span></span><span>
</span><span><span class="hljs-variable">$extension</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$file_name</span></span><span>, </span><span><span class="hljs-variable">$dot_position</span></span><span> + </span><span><span class="hljs-number">1</span></span><span>); </span><span><span class="hljs-comment">// 요점 뒤에있는 부분</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$extension</span></span><span>; </span><span><span class="hljs-comment">// 산출: pdf</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>이 예에서는 strrpos가 파일 이름의 마지막 지점의 위치를 찾는 데 사용 된 다음 Substr을 사용하여 포인트의 위치에서 파일 확장을 얻기 시작합니다.
범위 내 $ 시작 및 $ 길이 매개 변수 : $ 시작 매개 변수가 문자열의 길이보다 크거나 $ 길이가 나머지 문자 수를 초과하면 substr 함수는 빈 문자열 또는 완전한 문자열을 반환합니다. 불필요한 실수를 피하기 위해 이러한 상황에주의하십시오.
다중 바이트 문자 세트를 지원합니다 . PHP의 기판 함수는 다중 바이트 문자 (예 : 중국어)에 몇 가지 제한이있을 수 있습니다. 멀티 바이트 문자 세트를 처리 해야하는 경우 Substr 대신 MB_Substr 함수를 사용하는 것이 좋습니다.
기판 함수는 PHP에서 매우 실용적인 도구입니다. 왼쪽에서 지정된 길이의 하위 문자열을 가로 채고 오른쪽에서 부분 문자열을 가로 채기도하는 데 도움이 될 수 있습니다. 이 기능을 합리적으로 사용하면 문자열 처리를 크게 단순화 할 수 있으며 코드의 가독성과 효율성을 향상시킬 수 있습니다. 실제 개발에서는 기판 기능을 사용하여 고정 길이 차단에 적합 할뿐만 아니라 동적 조건에서 가로 채기 요구 사항에 대처하는 다양한 문자열 추출 작업을 유연하게 완료 할 수 있습니다.