Aktueller Standort: Startseite> Neueste Artikel> Was sind die praktischen Methoden, um ord () mit Strtr () zum Ersatz für die Zeichenzuordnung zu verwenden?

Was sind die praktischen Methoden, um ord () mit Strtr () zum Ersatz für die Zeichenzuordnung zu verwenden?

gitbox 2025-06-17

In PHP sind die Funktionen ord () und strtr () sehr praktische Werkzeuge, mit denen Entwickler die Effizienz bei der Charakterverarbeitung verbessern können. ord () kann Zeichen in entsprechende ASCII -Codes umwandeln, während Strtr () eine kurze Möglichkeit bietet, Zeichen von Zeichenfolgen zu ersetzen. In diesem Artikel wird untersucht, wie diese beiden Funktionen für den Ersatz für die Charakterzuordnung kombiniert werden und einige Methoden in praktischen Anwendungen eingeführt werden.

1. Grundnutzung von ord () Funktion

Die Funktion ord () ist eine PHP-integrierte Funktion, die den ASCII-Codewert eines Zeichens zurückgibt. Zum Beispiel:

 <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">// Ausgabe: 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">// Ausgabe: 97</span></span><span>
</span></span>

Mit ord () können Sie leicht ASCII -Code für ein Zeichen erhalten. Dies bietet eine sehr grundlegende, aber leistungsstarke Funktion für den Charaktervergleich, die Konvertierung und andere Operationen.

2. Grundlegende Verwendung von Strtr () Funktion

Strtr () ist eine Funktion, die bestimmte Zeichen in einer Zeichenfolge ersetzt. Es hat zwei gemeinsame Verwendungen:

  • Zeichenwechsel : Ersetzen Sie Zeichen in der Quellzeichenfolge durch Zielzeichen durch eine Zeichenzuordnungstabelle.

  • Zeichenbereich Ersatz : Ersetzen Sie alle Zeichen innerhalb des angegebenen Bereichs.

Verwenden Sie beispielsweise eine Zeichenkarte für den Austausch:

 <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">// Wille 'h' Ersetzen durch '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">// Ausgabe: jello</span></span><span>
</span></span>

In diesem Beispiel verwenden wir Strtr () , um die Zeichen in der Zeichenfolge direkt zu ersetzen. STRTR () ist sehr effizient, wenn es sich um einen Small-Range-Charakter-Substitutionen handelt.

3. Die Kombination von ord () und strtr ()

Das Kombinieren von ord () mit Strtr () kann komplexere Charakterzuordnungsaufgaben erledigen. Wir können die Funktion ord () verwenden, um den ASCII -Code des Zeichens zu erhalten und dann Strtr () zu ersetzen, um das Zeichen zu ersetzen. Diese Kombinationsmethode ist besonders nützlich in einigen Szenarien, in denen eine Zeichencodierung erforderlich ist.

3.1 Zuordnung basierend auf ASCII -Code

Nehmen wir an, wir haben eine Zeichenfolge, die auf dem ASCII -Codewert einen Zeichen ersetzen muss. Sie können ord () verwenden, um den ASCII -Code für jedes Zeichen zu erhalten, und ersetzt ihn dann nach diesen Codewerten bedingt ersetzen. Zum Beispiel:

 <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">// Direkter Austausch</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">// Ausgabe: jello</span></span><span>

</span><span><span class="hljs-comment">// Ein anderer Weg:bezogen auf ord() Führen Sie Charakterzuordnung durch</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 Der Wert ist 104 Es ist Zeit '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">// Ersetzen durch '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">// Halten Sie Originalfiguren</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">// Ausgabe: jello</span></span><span>
</span></span>

In diesem Beispiel wird die Funktion ord () verwendet, um den ASCII -Code des Zeichens zu erhalten und festzustellen, ob das Zeichen basierend auf diesem Code ersetzt werden soll.

3.2 groß angelegte Charakterzuordnung

In einigen Fällen müssen wir möglicherweise einen größeren Bereich von Charaktersubstitutionen durchführen, z. B. das Ersetzen einer Reihe von Zeichen oder ein ganzes Alphabet. STRTR () unterstützt das Übergeben mehrerer Zeichen gleichzeitig, um sie zu ersetzen. Zu diesem Zeitpunkt kann eine Zeichenzuordnung erzeugt werden, indem die Funktion ord () kombiniert wird, die den Austausch einer großen Anzahl von Zeichen automatisch verarbeiten kann:

 <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">// Erstellen Sie eine Zuordnungsbeziehung:Wille小写字母 a-z Ersetzen durch 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> &lt;= </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 码差Der Wert ist 32(Kleinbuchstaben in Großbuchstaben)</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">// Ausgabe: ABCDEFG</span></span><span>
</span></span>

In diesem Beispiel erzeugen wir zunächst eine Zeichenkarte über eine Schleife und konvertieren Kleinbuchstaben in Großbuchstaben. Verwenden Sie dann Strtr () , um alle Zeichen gleichzeitig zu ersetzen.

4. Praktische Anwendungsszenarien

4.1 Charakterverschlüsselung und Entschlüsselung

Die Kombination von ord () und strtr () kann leicht einige einfache Zeichenverschlüsselung und Entschlüsselungsalgorithmen implementieren. Sie können beispielsweise den ASCII -Code des Zeichens über ord () erhalten, ihn verschlüsseln (z. B. Hinzufügen eines festen Werts) und dann durch Strtr () ersetzen:

 <span><span><span class="hljs-comment">// Einfache Zeichenverschlüsselung:Jeder Charakter ASCII Code plus 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">// WilleJeder Charakter ASCII Code plus 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">// Ausgabe: ifmmp</span></span><span>
</span></span>

4,2 HTML Escape -Charakterverarbeitung

In HTML müssen einige Charaktere entkommen werden, z. B. < zu & lt; , > zu & gt; . Mit ord () und strtr () können Sie benutzerdefinierte Escape -Charakterverarbeitung implementieren:

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"&lt;div&gt;Hello World&lt;/div&gt;"</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">"&lt;"</span></span><span> =&gt; </span><span><span class="hljs-string">"&amp;lt;"</span></span><span>,
    </span><span><span class="hljs-string">"&gt;"</span></span><span> =&gt; </span><span><span class="hljs-string">"&amp;gt;"</span></span><span>,
    </span><span><span class="hljs-string">"&amp;"</span></span><span> =&gt; </span><span><span class="hljs-string">"&amp;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">// Ausgabe: &amp;lt;div&amp;gt;Hello World&amp;lt;/div&amp;gt;</span></span><span>
</span></span>

In diesem Beispiel ersetzen wir direkt mehrere Sonderzeichen durch Strtr (), um das Problem der HTML -Injektion zu vermeiden.

5. Zusammenfassung

Durch die Kombination von ORD () und Strtr () können PHP -Entwickler eine größere Flexibilität und Effizienz beim Ersatz für die Charakterzuordnung erzielen. Beide Funktionen können eine wichtige Rolle spielen, ob sie verschlüsselt und entschlüsselt sind, den Charakterersatz oder die Erzeugung von dynamischen Charakter -Mapping -Tabellen. Das Verständnis und Beherrschen ihrer Nutzung kann Ihnen helfen, mit verschiedenen Problemen mit Charakterumwandlung effizienter umzugehen.