Usando
preg_replace:
Uma maneira de se fazer isso seria substituir os caracteres especiais da variavel titulo, por "-"... E depois se tiver um exemplo...:
Titulo: "Nome do arquivo!!"
seria: Nome do arquivo!!.xml
Mas substituindo as expressões que deseja por "-" seria usando
$novotitulo=preg_replace("/[_\W]/", "-", $titulo); // aqui está substituindo caracteres Non Word /W, mas terá de substituir Underline _ também, por que underline é caracter Word.
Nome-do-arquivo--.xml
(percebe-se que no final teve dois "-")
Se caso haver vários "-" seguidos poderia se usar um WHILE para que ele substitua "--" por "-".
while(strstr($novotitulo,"--")){
str_replace("--","-",$titulo)
}
// enquanto ele encontrar mais de um "-" na variavel titulo (
strstr), ele ira subtituir até a variavel conter apenas um "-" no lugar dos caracteres especiais que você deseja subtituir (
str_replace).
Edição feita por: lwirkk, 16/02/2008, 14:56.