【问题标题】:Converting special characters in php [duplicate]在php中转换特殊字符[重复]
【发布时间】:2017-05-30 12:09:47
【问题描述】:

我想创建一个具有以下名称的文件夹:

1.参观L'Aventure Du Sucre博物馆和工厂

2.参观Vallée des Couleurs

但我得到了:

  1. 参观 L’Aventure Du Sucre 博物馆和工厂
  2. 参观Valléedes Couleurs

如何处理这些特殊字符?我知道这是一个众所周知的问题,但我无法使其正常工作,请帮助

这是我的代码:

$Title = "Visit to L’Aventure Du Sucre Museum and Factory";

mkdir('uploadImage/'. $Title, 0777, true);

【问题讨论】:

  • 您应该更改目录的命名。例如,您可以 md5 标题,使其仅包含字符和数字,而没有特殊字符。
  • 您的操作系统是否支持多字节字符集?你正在运行什么操作系统
  • 我正在运行 Windows 7 专业版 64 位
  • 我无法 md5 标题 Manuel,因为我需要该名称以备将来使用
  • 您尝试做的事情不是一个好主意,原因有很多。但是,我在这里看到的是编码问题。

标签: php html character


【解决方案1】:

尽量减少你的目录名称

function slugify($text){
  // replace non letter or digits by -
  $text = preg_replace('~[^\pL\d]+~u', '-', $text);

  // transliterate
  $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);

  // remove unwanted characters
  $text = preg_replace('~[^-\w]+~', '', $text);

  // trim
  $text = trim($text, '-');

  // remove duplicate -
  $text = preg_replace('~-+~', '-', $text);

  // lowercase
  $text = strtolower($text);

  return $text;
}

$Title = "Visit to L’Aventure Du Sucre Museum and Factory";
$Title = slugify($Title)
mkdir('uploadImage/'. $Title, 0777, true);

【讨论】:

  • 谢谢它的工作,但我认为它会更简单
猜你喜欢
  • 2020-05-06
  • 1970-01-01
  • 2012-07-10
  • 2017-11-25
  • 2012-06-15
  • 1970-01-01
  • 2018-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多