webForumDet fria alternativet

Preg och specialtecken

PHP

4 svar · 528 visningar · startad av Troxy

Medlem sedan mars 20041 505 inlägg
Frågan#1

Hej, jag har nyligen bytt webbhotell.
På det gamla hotellet så ingick åäö och andra specialtecken när man använder \w i preg_
Men det nya hotellet tar inte dessa längre. Är det någon inställning som man själv kan fixa?

<?php

var_dump(preg_match('/^[\w\s]+$/', 'En snäll häst'));  //int(0)

?>
Medlem sedan feb. 2007278 inlägg
#2

Troxy skrev:

Men det nya hotellet tar inte dessa längre. Är det någon inställning som man själv kan fixa?

setlocale()

http://se.php.net/manual/en/function.setlocale.php

Medlem sedan mars 20041 505 inlägg
#3

Okej, men hur exakt sätter jag den till svenska på en FreeBSD-server då?
Jag har testat många olika strängar, men setlocale returnerar bara false hela tiden.

/r Okej, nu fick jag napp på denna kodsnutt:

setlocale(LC_ALL, 'sv_SE.ISO8859-1');

Men preg vill fortfarande inte godkänna åäö som "word characters".

Medlem sedan juni 20001 251 inlägg
#4

Det går ange flera för att hitta rätt. Osäker på hur iso-varianten ska formateras dock, verkar vara lite olika här och var.

Exempel:

setlocale(LC_ALL, 'sv_SE.iso88591, 'sv_SE', 'swedish');

sv_SE
sv_SE.iso88591
sv_SE.iso885915
sv_SE.utf8
swedish

Medlem sedan mars 20041 505 inlägg
#5

Japp efter många försök så accepterar den nu en svensk teckentabell.
Men preg vill fortfarande inte.
Jag har lyckats lösa detta lite snabbt genom att lägga till /u-modifiern för unicode i mitt pattern, men är detta verkligen den rätta lösningen?

258 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)