Entfernen Sie die folgenden Zeichen ½ ´ ¤ £ € ¨ mit PHP, aber ohne die Funktionen preg_replace oder str_replace
P粉163465905
P粉163465905 2023-09-12 20:08:13
0
1
568

Ich muss ein Problem lösen. Ich kann preg_replace 或 str_replace nicht verwenden, da wir die Zeichen nicht vorbestimmen können, da die Daten aus der Formulareingabe stammen.

Ich habe versucht, diese Zeichen daraus zu entfernen $name "Test ½ ´ ¤ £ € ¨" ½ ´ ¤ £ € ¨;

Das Gleiche gilt für das Frontend, die Charaktere können nicht vorherbestimmt werden

Ich habe die folgenden Methoden ausprobiert, aber keine davon hat funktioniert

$name = "Test ½ ´ ¤ £ € ¨";

mb_convert_encoding(strval($name);

utf8_decode(strval($name);

Meine ideale Ausgabe ist Test

P粉163465905
P粉163465905

Antworte allen(1)
P粉731861241

您可以始终遍历字符串中的字符。但要小心:php不是原生支持Unicode的。

$remove = array( '½', '´', '¤', '£', '€' );
$result = '';
$name = "Test ½ ´ ¤ £ € ¨";

$count = mb_strlen($name, 'UTF-8');
for( $i = 0; $i < $count; $i++ ){
    $char = mb_substr( $name, $i, 1, 'UTF-8' );
    if( ! in_array( $char, $remove ) {
      $result .= $char;
    }
}

这会遍历用户提供的字符串中的多字节字符,并允许您对它们进行任何操作。该示例构建了一个结果字符串,省略了您提到的字符。(未调试,抱歉。)

(恕我直言,我认为您避免使用字符串替换函数的理由可能是错误的。使用正则表达式字符类的好处在于:正则表达式作者已经解决了许多奇怪的边缘情况,其中Unicode包含了令人不安的许多情况。)

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage