STRCSPN 함수는 PHP의 함수로, 문자열에 지정된 문자의 첫 번째 발생을 찾습니다. 기능 정의는 다음과 같습니다.
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$characters</span></span><span>)
</span></span>
$ haystack : 검색 할 문자열.
$ 문자 : 일치하도록 설정된 캐릭터가 포함되어 있습니다.
strcspn 의 기능은 $ haystack 문자열에서 위치 색인 (즉, 문자 수)을 시작 위치에서 시작하여 $ 문자 캐릭터 세트의 문자를 만나기 전까지를 반환하는 것입니다. 일치하는 문자가 없으면 문자열의 총 길이를 반환하십시오.
예를 들어:
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, World!"</span></span><span>;
</span><span><span class="hljs-variable">$index</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-string">",!"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$index</span></span><span>; </span><span><span class="hljs-comment">// 산출 5,왜냐하면","그리고"!"에 나타났습니다 5 조금그리고第 7 조금</span></span><span>
</span></span>
URL 인코딩은 종종 URL의 특수 문자를 안전하게 전송할 수 있도록하는 데 사용됩니다. 예를 들어, 공간은 %20 으로 인코딩되고, #는 %23 으로 인코딩되며 , %26 등으로 인코딩됩니다.
URL 인코딩을 구문 분석 할 때 특히 쿼리 문자열에서 매개 변수를 추출 할 때 이러한 특수 문자를 올바르게 처리하는 방법을 고려해야합니다. 전통적인 문자열 세분화 방법은 이러한 특수 문자의 존재로 인해 오류를 구문 분석 할 수 있습니다.
URL에서 쿼리 문자열을 구문 분석하거나 URL에서 특정 매개 변수의 값을 추출 해야하는 경우 strcspn은 대상 문자 발생 위치를 찾는 데 매우 효과적 일 수 있습니다. 특히 복잡한 인코딩을 처리 할 때 STRCSPN은 가로 채는 문자열의 시작 및 끝 위치를 정확하게 제어 할 수 있습니다.
URL 인코딩이 포함 된 쿼리 문자열이 있다고 가정하고 특정 매개 변수의 값을 추출해야합니다.
<span><span><span class="hljs-variable">$url</span></span><span> = </span><span><span class="hljs-string">"https://example.com/page?name=John+Doe&age=25&city=New%20York"</span></span><span>;
</span></span>
이름 매개 변수, 즉 John+Doe 의 값을 추출하려면 strcspn을 통해 정확하게 찾을 수 있습니다.
<span><span><span class="hljs-comment">// 찾다 name= 다음 문자열</span></span><span>
</span><span><span class="hljs-variable">$param_str</span></span><span> = </span><span><span class="hljs-string">"name=John+Doe&age=25&city=New%20York"</span></span><span>;
</span><span><span class="hljs-variable">$start</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$param_str</span></span><span>, </span><span><span class="hljs-string">"name="</span></span><span>) + </span><span><span class="hljs-number">5</span></span><span>; </span><span><span class="hljs-comment">// 일어나십시오 name= 的起始조금置,그리고 건너 뛰기 "name="</span></span><span>
</span><span><span class="hljs-variable">$end</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$param_str</span></span><span>, </span><span><span class="hljs-variable">$start</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">$value</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$param_str</span></span><span>, </span><span><span class="hljs-variable">$start</span></span><span>, </span><span><span class="hljs-variable">$end</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>; </span><span><span class="hljs-comment">// 산출 John+Doe</span></span><span>
</span></span>
이 예에서는 strcspn을 사용 하여 이름 = 에서 시작하는 문자열의 문자 수를 찾으십시오 .
URL 인코딩에서 공백은 일반적으로 + 로 인코딩되고 %20은 공백을 나타냅니다. 구문 분석 값을 올바르게 변환 할 수 있도록 구문 분석 할 때 특히주의해야합니다. 예를 들어, URL 인코딩 된 String John+Doe가 있어 John Doe 로 변환하려면 strcspn을 정확하게 처리 할 수 있습니다.
<span><span><span class="hljs-variable">$encoded_str</span></span><span> = </span><span><span class="hljs-string">"John+Doe"</span></span><span>;
</span><span><span class="hljs-variable">$index</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strcspn</span></span><span>(</span><span><span class="hljs-variable">$encoded_str</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">$decoded_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$encoded_str</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$index</span></span><span>) . </span><span><span class="hljs-string">" "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$encoded_str</span></span><span>, </span><span><span class="hljs-variable">$index</span></span><span> + </span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_str</span></span><span>; </span><span><span class="hljs-comment">// 산출 John Doe</span></span><span>
</span></span>
이 방법은 John 과 Doe를 정확하게 추출 할뿐만 아니라 strcspn을 통해 URL 인코딩 된 특수 문자를 처리합니다.
위의 예에서, 우리는 strcspn 함수가 URL 인코딩을 처리하는 데 큰 역할을한다는 것을 알 수 있습니다. 쿼리 문자열의 매개 변수 값을 구문 분석하든 URL에서 인코딩 된 문자를 처리하든 strcspn은 작업을 효율적이고 정확하게 완료하는 데 도움이 될 수 있습니다. strcspn 의 캐릭터 검색 기능을 영리하게 활용함으로써 기존 문자열 세분화 방법으로 인해 발생할 수있는 오류를 피할 수있어 URL 파싱 작업이보다 안정적이고 신뢰할 수 있습니다.
관련 태그:
URL