Php 替代Ç;
我在上面有一个函数,可以从帖子标题创建url段塞,问题是Php 替代Ç;,php,special-characters,slug,Php,Special Characters,Slug,我在上面有一个函数,可以从帖子标题创建url段塞,问题是ç字符没有被转换成c。它实际上被函数覆盖 示例帖子标题:Coração de Pelúcia 产生的鼻涕虫:科劳·德·佩卢西亚 function generate_seo_link($input,$replace = '-',$remove_words = true,$words_array = array()) { //make it lowercase, remove punctuation, remove multiple/l
ç
字符没有被转换成c
。它实际上被函数覆盖
示例帖子标题:Coração de Pelúcia
产生的鼻涕虫:科劳·德·佩卢西亚
function generate_seo_link($input,$replace = '-',$remove_words = true,$words_array = array())
{
//make it lowercase, remove punctuation, remove multiple/leading/ending spaces
$return = trim(ereg_replace(' +',' ',preg_replace('/[^a-zA-Z0-9\s]/','',strtolower($input))));
//remove words, if not helpful to seo
//i like my defaults list in remove_words(), so I wont pass that array
if($remove_words) { $return = remove_words($return,$replace,$words_array); }
//convert the spaces to whatever the user wants
//usually a dash or underscore..
//...then return the value.
return str_replace(' ',$replace,$return);
}
如何修复此函数以生成类似于coracao de pelucia的slug
function generate_seo_link($input,$replace = '-',$remove_words = true,$words_array = array())
{
//make it lowercase, remove punctuation, remove multiple/leading/ending spaces
$return = trim(ereg_replace(' +',' ',preg_replace('/[^a-zA-Z0-9\s]/','',strtolower($input))));
//remove words, if not helpful to seo
//i like my defaults list in remove_words(), so I wont pass that array
if($remove_words) { $return = remove_words($return,$replace,$words_array); }
//convert the spaces to whatever the user wants
//usually a dash or underscore..
//...then return the value.
return str_replace(' ',$replace,$return);
}
您应该使用iconv模块和类似于此的函数来进行转换:
function url_safe($string){
$url = $string;
setlocale(LC_ALL, 'pt_BR'); // change to the one of your language
$url = iconv("UTF-8", "ASCII//TRANSLIT", $url);
$url = preg_replace('~[^\\pL0-9_]+~u', '-', $url);
$url = trim($url, "-");
$url = strtolower($url);
return $url;
}