【问题标题】:How to remove special character without quotes in PHP?如何在 PHP 中删除不带引号的特殊字符?
【发布时间】:2017-08-19 07:55:10
【问题描述】:

我有一个类似的字符串:Chào Bạn

在 PHP 中,我想将其转换为小写并删除所有特殊字符、空格。

输入:Chào Bạn

输出:chaoban

在php代码中:

$string = 'Chào Bạn';
$newString = preg_replace('/\s+/', '', $string);
echo strtolower($newString);

$newString = chàobạn 这样的结果。

我无法删除特殊字符。

【问题讨论】:

标签: php string


【解决方案1】:

您可以将以下函数用于您的解决方案。

function clean($string) {
   $string = strtolower($string); // Convert string into lower.
   $string = str_replace(' ', '', $string); // Replaces all spaces .

   return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
}

【讨论】:

  • 你不需要str_replacepreg_replace 也可以处理它
  • 你的答案是:chobn
  • 嗨@Jalpa,在clean() 函数中的return 之前添加行:$string = iconv('utf-8', 'ascii//TRANSLIT', $string); 并删除行有str_replace,因为就像@rndus2r 所说。它工作。当您编辑答案时,我会接受您的答案。
【解决方案2】:

试试这个:

$string = 'Chào Bạn';
$newString = preg_replace("/[^A-Za-z0-9]/", "", $string);
echo strtolower($newString);

【讨论】:

  • 这不是答案,因为它只会删除所有非字母数字字符。 OP 希望这些特殊字符恢复为普通字符。
猜你喜欢
  • 2012-06-18
  • 2017-07-25
  • 2022-08-03
  • 1970-01-01
  • 1970-01-01
  • 2018-01-19
  • 2012-05-30
  • 2017-07-22
  • 2019-11-20
相关资源
最近更新 更多