Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    str_replace o preg_replace?

    ciao a tutti.

    creo pagine effettive nel server dando ad esse il nome del titolo di un articolo scritto da un utente.
    IL problema è che se l'utente scrive un titolo con caratteri speciali oppure trattini oppure due-puntini punti-virgola slash e chars vari il file che viene creato...SE viene creato non sarà reperibile perchè il server trasforma i caratteri o li tronca ed i link url visibili non corrispondo più.

    sto per ora utilizzando questa funzione ma mi sembra assurdo che per qualsivoglia schizzo dell'utente io debba metterci una pezza indicando il carattere da sostituire.
    codice:
    $urlcaratteri = array(">","<","\"","\n","\r","\t","
    ","
    ","
    ",""," ",".",",","; ","° ","* ","-","'","&apos;"); $urlconvertiti = array("-","-","-","-","-","-","-","-","-","-","-","-","","-","-","-","-","-","-"); $url_title = str_replace($caratteri, $convertiti, $post_title);
    Vorrei piuttosto fare in modo che tutte le url create dai titoli dei post siano minuscole, senza lettere accentate o caratteri strani. tutto ciò che non è carattere minuscolo o numero si deve trasformare in carattere vuoto "" e gli spazi in trattini.

    so che esiste pre_replace...ma sto impazzendo nell'utilizzarla.
    help

  2. #2

    Re: str_replace o preg_replace?

    Originariamente inviato da bigdoll
    ciao a tutti.

    creo pagine effettive nel server dando ad esse il nome del titolo di un articolo scritto da un utente.
    IL problema è che se l'utente scrive un titolo con caratteri speciali oppure trattini oppure due-puntini punti-virgola slash e chars vari il file che viene creato...SE viene creato non sarà reperibile perchè il server trasforma i caratteri o li tronca ed i link url visibili non corrispondo più.

    sto per ora utilizzando questa funzione ma mi sembra assurdo che per qualsivoglia schizzo dell'utente io debba metterci una pezza indicando il carattere da sostituire.
    codice:
    $urlcaratteri = array(">","<","\"","\n","\r","\t","
    ","
    ","
    ",""," ",".",",","; ","° ","* ","-","'","&apos;"); $urlconvertiti = array("-","-","-","-","-","-","-","-","-","-","-","-","","-","-","-","-","-","-"); $url_title = str_replace($caratteri, $convertiti, $post_title);
    Vorrei piuttosto fare in modo che tutte le url create dai titoli dei post siano minuscole, senza lettere accentate o caratteri strani. tutto ciò che non è carattere minuscolo o numero si deve trasformare in carattere vuoto "" e gli spazi in trattini.

    so che esiste pre_replace...ma sto impazzendo nell'utilizzarla.
    help

    urlencode?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3

    Re: Re: str_replace o preg_replace?

    Originariamente inviato da Santino83_02
    urlencode?
    cos'è?

  4. #4
    no niente ho detto una cavolata

    http://php.net/manual/en/function.urlencode.php

    aggiunge + al posto degli spazi e %+2 hex al posto di tutti i caratteri non alfanumerici. Solo che ad un filesystem *nix non credo piaccia %...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Originariamente inviato da Santino83_02
    no niente ho detto una cavolata

    http://php.net/manual/en/function.urlencode.php

    aggiunge + al posto degli spazi e %+2 hex al posto di tutti i caratteri non alfanumerici. Solo che ad un filesystem *nix non credo piaccia %...

    BENE ... ho trovato la mia soluzione cercando da GOOGLE AMERICANO

    Un programmatore ha cercato da sé la soluzione al problema e l'ha inserita in un ottima risorsa on-line per programmatori PHP

    MI FUNZIONA ECCO LA FUNZIONE...APPUNTO :-)

    codice:
    function toAscii($str, $replace=array(), $delimiter='-') { setlocale(LC_ALL, 'en_US.UTF8'); 	if( !empty($replace) ) { 		$str = str_replace((array)$replace, ' ', $str); 	}  	$clean = iconv('UTF-8', 'ASCII//TRANSLIT', $str); 	$clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean); 	$clean = strtolower(trim($clean, '-')); 	$clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);  	return $clean; }

  6. #6
    carina questa funzione. comunque datti una letta ai commenti pure
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.