2009-10-22 9 views
0

J'insère le champ Alias ​​pour mon db appelé $ alias comment puis-je coder (j'utilise php pour mysql insert) pour supprimer tous les espaces et remplacer l'espace par "-" (en essayant de le changer en "format weburl", à savoir la suppression des espaces)Changer les espaces pour -

Merci

Répondre

1

est ici la méthode que j'utilise pour les chaînes de santize pour SEF urls:

$slug = trim(strtolower($value)); 
    $slug = preg_replace('/[^a-z0-9 _-]/', '', $slug); 
    return preg_replace('/\s+/', '-', $slug); 

Ne hésitez pas à ajouter des caractères supplémentaires autorisés au premier regex.

S'il vous plaît noter que ce n'est pas Unicode ou même ISO-8891 en toute sécurité, eh bien, il est, mais il va laisser tomber tout ce qui n'est pas a-z. Autrement dit, vous devrez peut-être normaliser la chaîne à l'avance (par exemple, remplacer les caractères accentués par leur équivalent ASCII fermé.) Il y a un certain nombre de questions et de réponses sur le sujet que j'ai déjà vues, mais je ne les trouve pas le moment. Je vais les éditer ici si je tombe sur n'importe quoi.

+0

Merci exactement ce que je voulais, et ça marche, je l'ai testé. ;) – Ossi

+0

Notez que - doit être le dernier caractère avant le] dans la deuxième ligne, donc si vous ajoutez plus de caractères, ajoutez-les avant le - – Powerlord

0

Pour les espaces que la suppression, vous voulez que le str_replace method. Toutefois, lorsque vous travaillez avec des URL, vous pouvez également envisager les méthodes urlencode et rawurlencode.

Questions connexes