使用php移除以下字符 ½ ´ ¤ £ € ¨,但不使用preg_replace或str_replace函数
P粉163465905
P粉163465905 2023-09-12 20:08:13
0
1
444

我有一个问题需要解决。我无法使用preg_replace 或 str_replace,因为我们无法预先确定字符,因为数据来自表单输入。

我试图从这个$name "Test ½ ´ ¤ £ € ¨"中删除这些字符½ ´ ¤ £ € ¨

对于前端也是一样,无法预先确定字符

我尝试了下面的方法,但它们都不起作用

$name = "Test ½ ´ ¤ £ € ¨"; mb_convert_encoding(strval($name); utf8_decode(strval($name);

我的理想输出是Test

P粉163465905
P粉163465905

全部回复 (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包含了令人不安的许多情况。)

    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!