webForumDet fria alternativet

Ersätta vissa bokstäver i en variabel

PHP

2 svar · 590 visningar · startad av WilleB

Medlem sedan okt. 200934 inlägg
Frågan#1

Vi är med i en hemside tävling, vår idé är att man ska kunna skapa ett eget parti, och sedan rösta på partier.

Om man fyller i partinamn Mitt parti
och laddar upp bild min_logga.png så fungerar det.

Men om man fyller i Päron partiet
och laddar upp bild min_logga.png så går loggan inte att se i webläsaren, bara om man laddar ner bilden via FTP.

I variabeln $namn vill jag byta ut åäöÅÄÖ<>:;,){}[]?$¤£# och alla andra som inte fungerar på internet, eller är det kanske enklare att skriva vilka man får använda?

Medlem sedan aug. 2008815 inlägg
#2

Det enklaste är nog att bara tillåta boksäverna a-z, A-Z, 0-9,_ och -

Medlem sedan feb. 20034 441 inlägg
#3

Såhär:

function remove_accent($str){
  $a = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', '&#256;', '&#257;', '&#258;', '&#259;', '&#260;', '&#261;', '&#262;', '&#263;', '&#264;', '&#265;', '&#266;', '&#267;', '&#268;', '&#269;', '&#270;', '&#271;', '&#272;', '&#273;', '&#274;', '&#275;', '&#276;', '&#277;', '&#278;', '&#279;', '&#280;', '&#281;', '&#282;', '&#283;', '&#284;', '&#285;', '&#286;', '&#287;', '&#288;', '&#289;', '&#290;', '&#291;', '&#292;', '&#293;', '&#294;', '&#295;', '&#296;', '&#297;', '&#298;', '&#299;', '&#300;', '&#301;', '&#302;', '&#303;', '&#304;', '&#305;', '&#306;', '&#307;', '&#308;', '&#309;', '&#310;', '&#311;', '&#313;', '&#314;', '&#315;', '&#316;', '&#317;', '&#318;', '&#319;', '&#320;', '&#321;', '&#322;', '&#323;', '&#324;', '&#325;', '&#326;', '&#327;', '&#328;', '&#329;', '&#332;', '&#333;', '&#334;', '&#335;', '&#336;', '&#337;', '&#338;', '&#339;', '&#340;', '&#341;', '&#342;', '&#343;', '&#344;', '&#345;', '&#346;', '&#347;', '&#348;', '&#349;', '&#350;', '&#351;', '&#352;', '&#353;', '&#354;', '&#355;', '&#356;', '&#357;', '&#358;', '&#359;', '&#360;', '&#361;', '&#362;', '&#363;', '&#364;', '&#365;', '&#366;', '&#367;', '&#368;', '&#369;', '&#370;', '&#371;', '&#372;', '&#373;', '&#374;', '&#375;', '&#376;', '&#377;', '&#378;', '&#379;', '&#380;', '&#381;', '&#382;', '&#383;', '&#402;', '&#416;', '&#417;', '&#431;', '&#432;', '&#461;', '&#462;', '&#463;', '&#464;', '&#465;', '&#466;', '&#467;', '&#468;', '&#469;', '&#470;', '&#471;', '&#472;', '&#473;', '&#474;', '&#475;', '&#476;', '&#506;', '&#507;', '&#508;', '&#509;', '&#510;', '&#511;');
  $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, $str);
}

function post_slug($str){
  return strtolower(preg_replace(array('/[^a-zA-Z0-9 -]/', '/[ -]+/', '/^-|-$/'), 
  array('', '-', ''), remove_accent($str)));
}

$myName = "hej hej åäö ÅÅ <>";
$myIntName = post_slug($myName);

echo $myIntName; // skriver ut "hej-hej-aao-AA"
263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)