Die Funktion von mb_substitute_character besteht darin, die Multi-Byte-String-Funktion ( mb_convert_encoding usw.) so festzulegen, dass sie Zeichen ersetzen, die nicht konvertiert werden können. Sein Funktionsprototyp ist wie folgt:
mb_substitute_character([ mixed $substchar = null ]): mixed
Parameter $ SubstChar : Optional, Angabe des Typs des Substitutungszeichens.
Rückgabewert : Wenn ein Parameter übergeben wird, wird die vorherige Ersatzcharaktereinstellung zurückgegeben. Wenn der Parameter nicht übergeben wird, wird die aktuelle Ersatzcharaktereinstellung zurückgegeben.
Der Parameter $ subchar kann Werte der folgenden Typen akzeptieren:
Ganzzahlwert (0-255)
ASCII-Code, das Einzelbyte-Zeichen darstellt. Zum Beispiel:
mb_substitute_character(63); // Setzen Sie den alternativen Charakter aufASCIIFragezeichen '?'
String <br> Eine Zeichenfolge kann übergeben werden, um bestimmte alternative Zeichen darzustellen. Zum Beispiel:
mb_substitute_character('?'); // verwenden“Alternative Zeichen”Symbol(U+FFFD)
Vordefinierte Konstanten
PHP hat mehrere häufig verwendete alternative Charakterkonstanten, die in eingebaut sind:
Mb_substitute_none : Nicht ersetzt, wenn die falschen Zeichen auftreten, werden sie direkt verworfen.
Mb_substitute_character : Verwenden Sie alternative Zeichen (normalerweise "?" Oder "?").
MB_SUBTITTITE_ENTITY : Verwenden Sie stattdessen die HTML -Entität.
Mb_substitute_string : Customized Substitute String (muss zusätzlich mit MB_SUBSUBTITTITE_CHARACTER -Einstellungen übereinstimmen).
Zum Beispiel:
mb_substitute_character(MB_SUBSTITUTE_CHARACTER);
In illegalen Zahlen oder Strings vergangen <br> Viele Anfänger übergeben zufällig eine Zahl oder eine Zeichenfolge, was zu ungültigen Ersatzcharaktereinstellungen oder unerwarteten Ergebnissen führt. MB_SUBSTITUT_CHARACTER verlangt, dass die Zahl zwischen 0-255 liegen muss und die Zeichenfolge ein einzelnes Zeichen oder eine vordefinierte Konstante sein muss.
Ignorieren Sie den Rückgabewert <br> Diese Funktion gibt die vorherigen alternativen Zeicheneinstellungen zurück, und das Ignorieren des Rückgabewerts kann es schwierig machen, den aktuellen alternativen Charakterstatus in komplexen Programmen zu verfolgen.
Missbrauch ständiger Namen <br> Manchmal wird es falsch geschrieben oder falsch verwendet. Zum Beispiel führt das Schreiben als mb_substitute_char anstelle von mb_substitute_character zu einem Fehler.
Verwirrende alternative Zeichen mit Codierungseinstellungen
mb_substitute_character legt nur Ersatzzeichen fest und hat keine direkte Beziehung zu mb_internal_encoding oder mb_detect_encoding , kann aber leicht missverstanden werden.
<?php
// Setzen Sie den alternativen Charakter auf问号 '?'
mb_substitute_character(63);
$str = "こんにちはWelt"; // "Hello world"japanisch
// 故意verwenden错误编码转换
$converted = mb_convert_encoding($str, "ASCII", "UTF-8");
echo $converted; // Zeichen, die nicht konvertiert werden können, werden durch ersetzt durch '?'
?>
Weitere Informationen finden Sie in der offiziellen PHP -Dokumentation:
<code> https://gitbox.net/manual/zh/function.mb-substitute-character.php </code>