Aktueller Standort: Startseite> Neueste Artikel> Unterstützt die Funktion Binesec () in PHP -Binärzeicheneingang, die Leerzeichen enthält? Wie kann ich Binec () richtig verwenden, um Binärdaten mit Leerzeichen zu verarbeiten?

Unterstützt die Funktion Binesec () in PHP -Binärzeicheneingang, die Leerzeichen enthält? Wie kann ich Binec () richtig verwenden, um Binärdaten mit Leerzeichen zu verarbeiten?

M66 2025-06-23

In PHP wird die BindEc () -Funktion verwendet, um binäre Zeichenfolgen in Dezimalzahlen umzuwandeln. Die grundlegende Verwendung ist sehr einfach. Durch die Übergabe einer reinen binären Schnur (bestehend aus 0 und 1) kann die entsprechende Dezimalgülleger zurückgegeben werden.

Zum Beispiel:

<Code> <? php echo Binesec ('1011'); // Ausgabe 11?> </Code>

Die Funktion Binesec () verarbeitet binäre Zeichenfolgen, die Räume enthalten

Wenn die eingehende binäre Zeichenfolge jedoch Leerzeichen enthält, wird die Funktion Binec () standardmäßig nicht unterstützt. Es analysiert die Zeichenfolge von Grund auf und stellt die Verarbeitung auf, wenn sie auf Zeichen stößt, die nicht 0 oder 1 sind, sodass Leerzeichen falsche Ergebnisse verursachen und sogar 0 zurückgeben.

Beispiel:

<Code> <? php echo Binesec ('101 1'); // Ausgabe 5, weil die Verarbeitung nach dem Begegnung mit einem Speicherplatz gestoppt wurde und tatsächlich '101'?> </Code> analysiert wurde

Wie Sie sehen können, machen Leerzeichen BindEc () keine vollständigen binären Daten normal analysieren.

Wie kann man mit Binärketten mit Räumen richtig umgehen?

Wenn Sie Leerzeichen in Ihrer binären Zeichenfolge haben und korrekt konvertieren möchten, können Sie zunächst die Verarbeitungsfunktion von PHP verwenden, um die Leerzeichen zu entfernen und sie dann in BindEc () zu übergeben.

Beispiel:

<code> <? php $ binaryWithSpaces = '101 1101 001'; $ cleanBinary = str_replace ('', '', $ binaryWithSpaces); $ decimalValue = Binesec ($ CleanBinary); echo $ decimalValue; ?> </code>

Hier werden alle Räume durch str_replace () entfernt, und dann wird Binec () aufgerufen, um sicherzustellen, dass das übergebene in eine reine binäre Schnur ist.

Allgemeinere Whitespace -Charakterreinigung

Wenn Sie andere Whitespace -Zeichen in Ihrer Zeichenfolge haben (z. B. Registerkartenzeichen \ t , Zeilenumbrüche \ n usw.), wird empfohlen, preg_replace () zu verwenden, um alle Whitespace zu entfernen:

<Code> <? php $ binaryWithHiteSpace = "101 \ t1101 \ n001"; $ cleanBinary = preg_replace ('/\ s+/', '', $ binaryWithHiteSpace); $ decimalValue = Binesec ($ CleanBinary); echo $ decimalValue; ?> </code>

Dies stellt sicher, dass die binäre Zeichenfolge keine Whitespace -Zeichen hat, so dass Binec () genau analysiert werden kann.

Zusammenfassen

  • Die Funktion Binesec () unterstützt keine binären String -Eingabe, die Leerzeichen oder andere Whitespace -Zeichen enthält.

  • Stellen Sie sicher, dass Sie alle Whitespace -Zeichen in der Eingabezeichenfolge löschen, bevor Sie Binec () verwenden.

  • Sie können Str_Replace ('', '', $ str) verwenden, um Leerzeichen zu entfernen oder die leistungsstärkeren preg_replace ('/\ s+/', '', $ str) zu verwenden, um alle Whitespace -Zeichen zu entfernen.

  • Nur durch die Verarbeitung einer sauberen reinen Binärqualität stellt sicher, dass Binec () Dezimalwerte korrekt zurückgibt.