PHP에서 Ord () 및 strtr () 기능은 개발자가 문자 처리의 효율성을 향상시키는 데 도움이되는 매우 실용적인 도구입니다. Ord ()는 문자를 해당 ASCII 코드로 변환 할 수있는 반면 strtr ()는 문자열의 문자를 교체하는 간결한 방법을 제공합니다. 이 기사는 문자 매핑 교체를 위해이 두 기능을 결합하는 방법을 살펴보고 실제 응용 분야에서 일부 방법을 소개합니다.
Ord () 함수는 문자의 ASCII 코드 값을 반환하는 PHP 내장 기능입니다. 예를 들어:
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">ord</span></span><span>(</span><span><span class="hljs-string">'A'</span></span><span>); </span><span><span class="hljs-comment">// 산출: 65</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">ord</span></span><span>(</span><span><span class="hljs-string">'a'</span></span><span>); </span><span><span class="hljs-comment">// 산출: 97</span></span><span>
</span></span>
Ord ()를 사용하면 문자에 대한 ASCII 코드를 쉽게 얻을 수 있습니다. 이것은 문자 비교, 변환 및 기타 작업을위한 매우 기본적이지만 강력한 기능을 제공합니다.
strtr ()는 문자열의 특정 문자를 대체하는 함수입니다. 두 가지 일반적인 용도가 있습니다.
문자 교체 : 문자 매핑 테이블을 통해 소스 문자열의 문자를 대상 문자로 바꾸십시오.
문자 범위 교체 : 지정된 범위 내의 모든 문자를 교체하십시오.
예를 들어, 교체 용 문자 맵을 사용하십시오.
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"hello"</span></span><span>;
</span><span><span class="hljs-variable">$trans</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-string">"h"</span></span><span>, </span><span><span class="hljs-string">"j"</span></span><span>); </span><span><span class="hljs-comment">// 할 것이다 'h' 대체하십시오 'j'</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$trans</span></span><span>; </span><span><span class="hljs-comment">// 산출: jello</span></span><span>
</span></span>
이 예에서는 strtr ()를 사용하여 문자열의 문자를 직접 교체합니다. strtr ()는 소규모 문자 대체를 처리 할 때 매우 효율적입니다.
ord ()를 strtr () 와 결합하면보다 복잡한 문자 매핑 작업을 처리 할 수 있습니다. Ord () 함수를 사용하여 문자의 ASCII 코드를 얻은 다음 strtr ()를 사용하여 문자를 대체 할 수 있습니다. 이 조합 방법은 문자 인코딩이 필요한 일부 시나리오에서 특히 유용합니다.
ASCII 코드 값을 기반으로 문자 교체가 필요한 문자열이 있다고 가정합니다. Ord ()를 사용하여 각 문자의 ASCII 코드를 얻은 다음이 코드 값에 따라 조건부로 교체 할 수 있습니다. 예를 들어:
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"hello"</span></span><span>;
</span><span><span class="hljs-variable">$trans</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-string">"h"</span></span><span>, </span><span><span class="hljs-string">"j"</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">$trans</span></span><span>; </span><span><span class="hljs-comment">// 산출: jello</span></span><span>
</span><span><span class="hljs-comment">// 또 다른 방법:기반 ord() 문자 매핑을 수행하십시오</span></span><span>
</span><span><span class="hljs-variable">$new_str</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-title function_ invoke__">str_split</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>) </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$char</span></span><span>) {
</span><span><span class="hljs-variable">$ascii</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ord</span></span><span>(</span><span><span class="hljs-variable">$char</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$ascii</span></span><span> == </span><span><span class="hljs-number">104</span></span><span>) { </span><span><span class="hljs-comment">// ASCII 가치는입니다 104 시간이야 'h'</span></span><span>
</span><span><span class="hljs-variable">$new_str</span></span><span> .= </span><span><span class="hljs-string">'j'</span></span><span>; </span><span><span class="hljs-comment">// 대체하십시오 'j'</span></span><span>
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-variable">$new_str</span></span><span> .= </span><span><span class="hljs-variable">$char</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">$new_str</span></span><span>; </span><span><span class="hljs-comment">// 산출: jello</span></span><span>
</span></span>
이 예에서 Ord () 함수는 문자의 ASCII 코드를 얻고이 코드를 기반으로 문자를 대체할지 여부를 결정하는 데 사용됩니다.
경우에 따라 캐릭터 세트 또는 전체 알파벳을 교체하는 것과 같은 더 넓은 범위의 문자 대체를 수행해야 할 수도 있습니다. strtr ()는 여러 문자를 한 번에 전달하여 교체합니다. 이 시점에서, Ord () 함수를 결합하여 문자 매핑을 생성 할 수 있으며, 이는 많은 문자의 교체를 자동으로 처리 할 수 있습니다.
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"abcdefg"</span></span><span>;
</span><span><span class="hljs-variable">$map</span></span><span> = [];
</span><span><span class="hljs-comment">// 매핑 관계를 만듭니다:할 것이다小写字母 a-z 대체하십시오 A-Z</span></span><span>
</span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">97</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> <= </span><span><span class="hljs-number">122</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span>++) {
</span><span><span class="hljs-variable">$map</span></span><span>[</span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-variable">$i</span></span><span>)] = </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-variable">$i</span></span><span> - </span><span><span class="hljs-number">32</span></span><span>); </span><span><span class="hljs-comment">// ASCII 码差가치는입니다 32(소문자로 대문자)</span></span><span>
}
</span><span><span class="hljs-variable">$trans</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$map</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$trans</span></span><span>; </span><span><span class="hljs-comment">// 산출: ABCDEFG</span></span><span>
</span></span>
이 예에서는 먼저 루프를 통해 문자 맵을 생성하여 소문자를 대문자로 변환합니다. 그런 다음 strtr ()를 사용하여 모든 문자를 한 번에 교체하십시오.
Ord () 와 strtr () 의 조합은 간단한 문자 암호화 및 암호 해독 알고리즘을 쉽게 구현할 수 있습니다. 예를 들어 Ord ()를 통해 문자의 ASCII 코드를 얻고 (예 : 고정 값 추가)를 암호화 한 다음 strtr () 로 바꿀 수 있습니다.
<span><span><span class="hljs-comment">// 간단한 캐릭터 암호화:각 캐릭터 ASCII 코드 플러스 1</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"hello"</span></span><span>;
</span><span><span class="hljs-variable">$encrypted</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-title function_ invoke__">str_split</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>) </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$char</span></span><span>) {
</span><span><span class="hljs-variable">$encrypted</span></span><span> .= </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-title function_ invoke__">ord</span></span><span>(</span><span><span class="hljs-variable">$char</span></span><span>) + </span><span><span class="hljs-number">1</span></span><span>); </span><span><span class="hljs-comment">// 할 것이다각 캐릭터 ASCII 코드 플러스 1</span></span><span>
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$encrypted</span></span><span>; </span><span><span class="hljs-comment">// 산출: ifmmp</span></span><span>
</span></span>
HTML에서는 < to & lt; , > to & gt; . ord () 및 strtr ()를 사용하면 사용자 정의 탈출 문자 처리를 구현할 수 있습니다.
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"<div>Hello World</div>"</span></span><span>;
</span><span><span class="hljs-variable">$trans</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtr</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-string">"&lt;"</span></span><span>,
</span><span><span class="hljs-string">">"</span></span><span> => </span><span><span class="hljs-string">"&gt;"</span></span><span>,
</span><span><span class="hljs-string">"&"</span></span><span> => </span><span><span class="hljs-string">"&amp;"</span></span><span>
]);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$trans</span></span><span>; </span><span><span class="hljs-comment">// 산출: &lt;div&gt;Hello World&lt;/div&gt;</span></span><span>
</span></span>
이 예에서는 HTML 주입 문제를 피하기 위해 여러 특수 문자를 strtr () 로 직접 교체합니다.
PHP 개발자는 Ord () 및 strtr ()를 결합하여 문자 매핑 교체의 유연성과 효율성을 높일 수 있습니다. 두 기능 모두 암호화 및 암호 해독, 문자 교체 또는 동적 문자 매핑 테이블을 생성하든 중요한 역할을 할 수 있습니다. 사용법을 이해하고 습득하면 다양한 캐릭터 변환 문제를보다 효율적으로 다루는 데 도움이 될 수 있습니다.