使用 preg_replace 更改字符串名称删除空格重音符号和点但允许点扩展
Change String name with preg_replace delete espace accent and dots but allow dot extension
我有一个代码可以删除点并允许点扩展,但重音看起来像:
Sin título => Sin_tÃ_tulo
$new_name = preg_replace("/\W(?=.*\.[^.]*$)/", "_", $string);
我想删除重音或更改为下划线
使用 intl 的两个建议(如果您的配置中缺少此模块,请安装它):
$tls = Transliterator::createFromRules("::Latin-ASCII; [^A-Za-z0-9] > '_' ");
echo $tls->transliterate("Sin título"); // Sin_titulo
或:
$tls = Transliterator::createFromRules("::NFD; [^A-Za-z0-9] > '_' ");
echo $tls->transliterate("Sin título"); // Sin_ti_tulo
我有一个代码可以删除点并允许点扩展,但重音看起来像:
Sin título => Sin_tÃ_tulo
$new_name = preg_replace("/\W(?=.*\.[^.]*$)/", "_", $string);
我想删除重音或更改为下划线
使用 intl 的两个建议(如果您的配置中缺少此模块,请安装它):
$tls = Transliterator::createFromRules("::Latin-ASCII; [^A-Za-z0-9] > '_' ");
echo $tls->transliterate("Sin título"); // Sin_titulo
或:
$tls = Transliterator::createFromRules("::NFD; [^A-Za-z0-9] > '_' ");
echo $tls->transliterate("Sin título"); // Sin_ti_tulo