Aktueller Standort: Startseite> Neueste Artikel> Möchten Sie eine Zeichenfolge von links abfangen? Lehre dich, die Substr -Funktion zu nutzen, um eine effiziente Substring -Extraktion zu implementieren

Möchten Sie eine Zeichenfolge von links abfangen? Lehre dich, die Substr -Funktion zu nutzen, um eine effiziente Substring -Extraktion zu implementieren

gitbox 2025-09-09

In PHP ist String Manipulation eine der am häufigsten verwendeten Funktionen im Entwicklungsprozess. Unabhängig davon, ob es sich um die Verarbeitung von Benutzereingaben, das Generieren dynamischer Inhalte oder das Extrahieren nützlicher Informationen aus einem langen Text, müssen wir möglicherweise Zeichenfolgen abfangen. PHP bietet viele leistungsstarke Funktionen, mit denen wir Strings effizient verarbeiten können, und Substr ist einer von ihnen.

Was ist die Substr -Funktion?

Substr ist eine integrierte Funktion in PHP, um den angegebenen Teil einer Zeichenfolge abzufangen. Damit können Sie leicht überall in der Saite beginnen und ein Substring extrahieren.

Funktionsprototyp :

 <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 : Die ursprüngliche Zeichenfolge, die abgefangen werden muss.

  • $ start : Die Startposition, die eine negative Zahl sein kann, bedeutet, dass die Berechnung am Ende der Zeichenfolge beginnt.

  • $ Länge (optional): die abgefangene Länge. Wenn dies ausgelassen wird, bedeutet dies, dass die Zeichenfolge von der Startposition bis zum Ende der Zeichenfolge abgefangen wird.

Verwenden Sie die Substr -Funktion, um die Zeichenfolge von links abzufangen

Angenommen, wir haben eine Zeichenfolge "Hallo, Welt!" Wenn wir die ersten 5 Zeichen links abfangen wollen, können wir die Substr -Funktion verwenden. Der Code ist wie folgt:

 <span><span><span class="hljs-meta">&lt;?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">// Ausgabe: Hello</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

In diesem Beispiel bedeutet 0 , aus dem ersten Zeichen der Zeichenfolge abzunehmen, und 5 bedeutet, eine Substring der Länge 5 abzufangen. Die Ausgabe ist also "Hallo" .

Dynamisch die abgefangene Länge steuern

Sie können auch die Länge des Abfangs gemäß den dynamischen Bedingungen steuern. Wenn Sie beispielsweise nur einen Teil einer Zeichenfolge basierend auf einer bestimmten Bedingung abfangen möchten, können Sie $ Länge auf den variablen Wert festlegen:

 <span><span><span class="hljs-meta">&lt;?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">// Ausgabe: Welcome</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Negative Indizes umgehen

Die Substr -Funktion unterstützt die negative Indexierung, was bedeutet, dass Sie von der rechten Seite der Zeichenfolge abfangen können. Dies ist sehr nützlich, um einige String -Operationen von rechts abzuwickeln.

Zum Beispiel, wenn Sie mit den letzten drei Zeichen einer Zeichenfolge beginnen möchten:

 <span><span><span class="hljs-meta">&lt;?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">// Ausgabe: fun</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Hier bedeutet -3 , vom vorletzten Charakter der Saite bis zum Ende der Saite abzufangen.

Praktische Anwendung: Dateierweiterungen extrahieren

Ein häufiges Szenario besteht darin, den Dateinamen -Erweiterungen zu extrahieren. Angenommen, Sie haben einen Dateipfad und müssen die Dateierweiterung abrufen. Sie können dies tun, indem Sie Substr- und Strrpos -Funktionen kombinieren.

 <span><span><span class="hljs-meta">&lt;?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">// Finden Sie den Ort des letzten Punktes</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">// Der Teil hinter dem Punkt</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">// Ausgabe: pdf</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

In diesem Beispiel wird Strrpos verwendet, um die Position des letzten Punktes im Dateinamen zu ermitteln und dann Substr zu verwenden, um die Position des Punktes abzufangen, um die Dateierweiterung zu erhalten.

Dinge zu beachten

  1. Außer Reichweite $ Start und $ Länge Parameter : Wenn der $ startparameter größer als die Länge der Zeichenfolge ist oder die $ Länge die verbleibende Anzahl von Zeichen überschreitet, gibt die Substr -Funktion eine leere Zeichenfolge oder eine vollständige Zeichenfolge zurück. Seien Sie vorsichtig mit diesen Situationen, um unnötige Fehler zu vermeiden.

  2. Unterstützt Multi-Byte-Zeichensätze : Die Substr- Funktion von PHP kann einige Einschränkungen für Multi-Byte-Zeichen (wie chinesische Zeichen) haben. Wenn Sie sich mit Multibyte -Zeichensätzen befassen müssen, wird empfohlen, die Funktion MB_SUBSTR anstelle von Substr zu verwenden.

Zusammenfassen

Die Substr -Funktion ist ein sehr praktisches Instrument in PHP. Es kann uns helfen, Substrings einer bestimmten Länge von links abzufangen und sogar die Abfangen von Teilzeichenfolgen von rechts zu unterstützen. Durch die vernünftige Verwendung dieser Funktion kann die String -Verarbeitung stark vereinfacht und die Lesbarkeit und Effizienz des Codes verbessert werden. In der tatsächlichen Entwicklung können wir die Substr -Funktion verwenden, um verschiedene Aufgaben der String-Extraktion flexibel zu erledigen, die nicht nur für das Abfangen mit fester Länge geeignet sind, sondern auch mit den Abfangen-Anforderungen unter dynamischen Bedingungen fertig werden.