Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 替换“中的任何特殊/外来字符”;网址友好“;一串_Php_Regex_Special Characters - Fatal编程技术网

Php 替换“中的任何特殊/外来字符”;网址友好“;一串

Php 替换“中的任何特殊/外来字符”;网址友好“;一串,php,regex,special-characters,Php,Regex,Special Characters,我需要从字符串中删除任何特殊字符,将空格替换为hifens,然后将其用作URL友好字符串,因此我使用了此函数: function removeCharacters($string){ $a = array(' ','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','ß','à','á','â','ã','ä','å

我需要从字符串中删除任何特殊字符,将空格替换为hifens,然后将其用作URL友好字符串,因此我使用了此函数:

function removeCharacters($string){

$a = array(' ','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ü','ý','ÿ','Ā','ā','Ă','ă','Ą','ą','Ć','ć','Ĉ','ĉ','Ċ','ċ','Č','č','Ď','ď','Đ','đ','Ē','ē','Ĕ','ĕ','Ė','ė','Ę','ę','Ě','ě','Ĝ','ĝ','Ğ','ğ','Ġ','ġ','Ģ','ģ','Ĥ','ĥ','Ħ','ħ','Ĩ','ĩ','Ī','ī','Ĭ','ĭ','Į','į','İ','ı','IJ','ij','Ĵ','ĵ','Ķ','ķ','Ĺ','ĺ','Ļ','ļ','Ľ','ľ','Ŀ','ŀ','Ł','ł','Ń','ń','Ņ','ņ','Ň','ň','ʼn','Ō','ō','Ŏ','ŏ','Ő','ő','Œ','œ','Ŕ','ŕ','Ŗ','ŗ','Ř','ř','Ś','ś','Ŝ','ŝ','Ş','ş','Š','š','Ţ','ţ','Ť','ť','Ŧ','ŧ','Ũ','ũ','Ū','ū','Ŭ','ŭ','Ů','ů','Ű','ű','Ų','ų','Ŵ','ŵ','Ŷ','ŷ','Ÿ','Ź','ź','Ż','ż','Ž','ž','ſ','ƒ','Ơ','ơ','Ư','ư','Ǎ','ǎ','Ǐ','ǐ','Ǒ','ǒ','Ǔ','ǔ','Ǖ','ǖ','Ǘ','ǘ','Ǚ','ǚ','Ǜ','ǜ','Ǻ','ǻ','Ǽ','ǽ','Ǿ','ǿ');
$b = array('-','A','A','A','A','A','A','AE','C','E','E','E','E','I','I','I','I','D','N','O','O','O','O','O','O','U','U','U','U','Y','s','a','a','a','a','a','a','ae','c','e','e','e','e','i','i','i','i','n','o','o','o','o','o','o','u','u','u','u','y','y','A','a','A','a','A','a','C','c','C','c','C','c','C','c','D','d','D','d','E','e','E','e','E','e','E','e','E','e','G','g','G','g','G','g','G','g','H','h','H','h','I','i','I','i','I','i','I','i','I','i','IJ','ij','J','j','K','k','L','l','L','l','L','l','L','l','l','l','N','n','N','n','N','n','n','O','o','O','o','O','o','OE','oe','R','r','R','r','R','r','S','s','S','s','S','s','S','s','T','t','T','t','T','t','U','u','U','u','U','u','U','u','U','u','U','u','W','w','Y','y','Y','Z','z','Z','z','Z','z','s','f','O','o','U','u','A','a','I','i','O','o','U','u','U','u','U','u','U','u','U','u','A','a','AE','ae','O','o');

return str_replace($a,$b,$string);

}
它工作正常,但当我使用一些外国字符时,一切都搞砸了。例如:

//Opening on миэт çǿůитÐфщи ђэιιø Ĵąẵ
输出保留特殊字符,我尝试使用以下方法进行额外筛选:

$string = str_replace($a,$b,$string);
return preg_replace("/[^A-Za-z0-9-]/", "", $string);
在我的函数结束时,但它输出:

//Opening-on-1084108011011090-c51136710801090D109210971080-11061101953953o-3082617861
我需要保留字符串数字,但除了普通字母(A-Za-z)和数字(0-9)之外,我不想要任何其他字符

我已经尝试过inconv、URLify和许多其他功能,但都做不好


这可能吗?如何执行此操作?

这将为您提供一个url友好字符串

public function getUrlFriendlyString($string)
{
    $string = mb_strtolower($string);
    $string = str_replace(array('ä','ö','ß','ü'), array('ae','oe','ss','ue'), $string);
    $string = preg_replace('#[^0-9a-z ]#', '', $string);
    $string = preg_replace('#\s\s+#', ' ', $string);
    $string = trim($string);
    $string = str_replace(' ', '-', $string);

    return $string;
}
示例输入

替换“Url友好”字符串中的任何特殊/外来字符

输出


replace-any-specialforeign-characters-from-a-url-friendly-string

谢谢您的回复,但错误仍然与我的代码相同。。。如果我在我的问题中使用字符,那么输出是//opening-on-10841080111090-51136710801090109210971080-11061101953953-3082617861可能是您在
utf8
上的文档编码有问题,使用示例字符串的响应给了我
opening-on
?看这里您是对的,我的页面字符集是ISO-8859-1,但是utf8_encode($_POST['field'])不应该解决这个问题?很难说,但根据我的经验,我可以说,如果您需要使用
utf8_encode
在正确的位置破解某些值,您仍然有多个文件字符集,并且在
utf8